PostgreSQL supporta gli operatori aritmetici di base, tra cui la sottrazione (-), per diversi tipi di dati numerici.
Prima di continuare a leggere, volevo parlarti del nostro gestore di database PostgreSQL moderno e veloce, Beekeeper Studio. Il suo editor SQL con autocompletamento ti permette di provare questi calcoli in un attimo, ed è gratuito per PostgreSQL: scaricalo qui.
Il primo esempio è semplice: sottrarre due numeri interi. Funziona con tutti i database basati su SQL, non solo con PostgreSQL.
SELECT 15 - 5 AS result;
Output previsto:
| result |
|---|
| 10 |
Sottrarre colonne
Ora vediamo come sottrarre una colonna da un'altra. Prendi una tabella delle vendite sales con la seguente struttura:
| id | item | price | discount |
|---|---|---|---|
| 1 | A | 100 | 20 |
| 2 | B | 200 | 50 |
Vuoi trovare il costo finale dopo l'applicazione dello sconto. Puoi ottenerlo sottraendo lo sconto dal prezzo.
SELECT id, item, price - discount AS Final_Price FROM sales;
Output previsto:
| id | item | final_price |
|---|---|---|
| 1 | A | 80 |
| 2 | B | 150 |
Sottrarre date
In PostgreSQL, la sottrazione tra date restituisce la differenza tra due date in giorni.
Prendi una tabella rentals come questa:
| id | item | rent_start_date | rent_end_date |
|---|---|---|---|
| 1 | Bike | 2022-03-01 | 2022-03-10 |
| 2 | Car | 2022-02-20 | 2022-03-02 |
Calcola la durata dei noleggi:
SELECT id, item, rent_end_date - rent_start_date as rental_duration FROM rentals;
Output previsto:
| id | item | rental_duration |
|---|---|---|
| 1 | Bike | 9 |
| 2 | Car | 10 |
Sottrazione con i timestamp
In PostgreSQL, sottrarre due timestamp restituisce l'intervallo tra di essi.
Immagina di avere una tabella logins:
| id | login_time | logout_time |
|---|---|---|
| 1 | 2022-03-15 08:00:00 | 2022-03-15 10:30:00 |
| 2 | 2022-03-15 07:30:00 | 2022-03-15 10:00:00 |
Calcola la durata di ogni sessione:
SELECT id, logout_time - login_time as session_duration FROM logins;
Output previsto:
| id | session_duration |
|---|---|
| 1 | 02:30:00 |
| 2 | 02:30:00 |
Casi d'uso pratici
Gestione dell'inventario
Ecco un esempio di calcolo delle scorte disponibili per ogni prodotto, sottraendo il numero di articoli venduti dalle scorte totali.
Supponiamo di avere una tabella dell'inventario strutturata così:
CREATE TABLE inventory (
product_id SERIAL PRIMARY KEY,
product_name VARCHAR(255),
total_stock INT,
sold INT
);
Dati di esempio:
INSERT INTO inventory (product_name, total_stock, sold) VALUES
('Product A', 100, 50),
('Product B', 200, 180),
('Product C', 150, 140);
Query: calcolo delle scorte disponibili
SELECT product_id, product_name, total_stock - sold AS available_stock
FROM inventory;
Output previsto:
product_id | product_name | available_stock
------------+--------------+-----------------
1 | Product A | 50
2 | Product B | 20
3 | Product C | 10
In questa query sottraiamo la quantità sold da total_stock per ottenere available_stock per ogni prodotto.
Calcolare l'età
La funzione age di PostgreSQL serve a calcolare la differenza tra due date e restituisce il risultato come un tipo interval complesso che include anni, mesi e giorni.
Ecco un caso d'uso pratico in cui potresti voler calcolare l'età dei clienti in una tabella.
Supponi di avere una tabella customers con una colonna birthdate.
SELECT customer_id, birthdate, age(current_date, birthdate) AS age
FROM customers;
Output previsto:
customer_id | birthdate | age
-------------+------------+----------------------
1 | 1990-04-25 | 34 years 3 mons 12 days
2 | 1985-10-12 | 38 years 9 mons 24 days
3 | 2000-01-01 | 24 years 7 mons 5 days
Conclusione
La sottrazione in PostgreSQL è uno strumento versatile che si applica a numeri, date e intervalli. In questo articolo abbiamo esplorato le operazioni di sottrazione in PostgreSQL, sia con i numeri che con le date. Ricordati di controllare sempre i tipi di dati e di verificarne la compatibilità quando esegui calcoli. Resta sintonizzato per i prossimi articoli della serie, in cui approfondiremo concetti SQL avanzati. Buon coding!
Altri articoli che potrebbero piacerti:
Beekeeper Studio è una GUI per PostgreSQL gratuita e open source
Questo è il client PostgreSQL che stavo cercando! È l'interfaccia a fare la differenza: pulita, intuitiva, potente. Addio al macchinoso PGAdmin. - David Cyprian
Beekeeper Studio è un client PostgreSQL veloce, intuitivo e facile da usare. Supporta anche tantissimi altri database e funziona alla grande su Windows, Mac e Linux.
Cosa dicono gli utenti PostgreSQL di Beekeeper Studio
A differenza di pgAdmin, Beekeeper è sorprendentemente semplice da usare, senza rinunciare alle funzionalità, e il prezzo è giusto! La funzione di backup del database è particolarmente utile. Un software davvero ottimo.
Strumento favoloso, l'IDE più pratico che abbia trovato finora per amministrare database Postgres e MySql: funziona e basta, senza complicazioni :-)