PostgreSQL unterstützt die grundlegenden arithmetischen Operatoren, darunter die Subtraktion (-) für verschiedene numerische Datentypen.
Bevor du weiterliest, möchte ich dir kurz unseren modernen und schnellen PostgreSQL-Datenbankmanager Beekeeper Studio vorstellen. Mit seinem SQL-Editor mit Autovervollständigung probierst du diese Berechnungen im Handumdrehen aus, und für PostgreSQL ist er kostenlos – lade ihn hier herunter.
Unser erstes Beispiel ist ganz einfach: Wir subtrahieren zwei Ganzzahlen. Das funktioniert in allen SQL-basierten Datenbanken, nicht nur in PostgreSQL.
SELECT 15 - 5 AS result;
Erwartete Ausgabe:
| result |
|---|
| 10 |
Spalten subtrahieren
Schauen wir uns jetzt an, wie du eine Spalte von einer anderen subtrahierst. Nimm eine Verkaufstabelle sales mit folgender Struktur:
| id | item | price | discount |
|---|---|---|---|
| 1 | A | 100 | 20 |
| 2 | B | 200 | 50 |
Du möchtest den Endpreis nach Abzug des Rabatts ermitteln. Dazu subtrahierst du einfach den Rabatt vom Preis.
SELECT id, item, price - discount AS Final_Price FROM sales;
Erwartete Ausgabe:
| id | item | final_price |
|---|---|---|
| 1 | A | 80 |
| 2 | B | 150 |
Datumswerte subtrahieren
Wenn du in PostgreSQL Datumswerte subtrahierst, erhältst du die Differenz zwischen zwei Daten in Tagen.
Nimm folgende Tabelle rentals:
| id | item | rent_start_date | rent_end_date |
|---|---|---|---|
| 1 | Bike | 2022-03-01 | 2022-03-10 |
| 2 | Car | 2022-02-20 | 2022-03-02 |
Berechne die Mietdauer:
SELECT id, item, rent_end_date - rent_start_date as rental_duration FROM rentals;
Erwartete Ausgabe:
| id | item | rental_duration |
|---|---|---|
| 1 | Bike | 9 |
| 2 | Car | 10 |
Subtraktion mit Timestamps
In PostgreSQL liefert die Subtraktion von Timestamps das Intervall zwischen zwei Zeitpunkten.
Angenommen, wir haben eine Tabelle 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 |
Berechne die Dauer jeder Sitzung:
SELECT id, logout_time - login_time as session_duration FROM logins;
Erwartete Ausgabe:
| id | session_duration |
|---|---|
| 1 | 02:30:00 |
| 2 | 02:30:00 |
Praktische Anwendungsfälle
Lagerverwaltung
Hier ein Beispiel, wie du den verfügbaren Bestand jedes Produkts berechnest, indem du die Anzahl verkaufter Artikel vom Gesamtbestand abziehst.
Angenommen, wir haben eine Lagertabelle mit folgender Struktur:
CREATE TABLE inventory (
product_id SERIAL PRIMARY KEY,
product_name VARCHAR(255),
total_stock INT,
sold INT
);
Beispieldaten:
INSERT INTO inventory (product_name, total_stock, sold) VALUES
('Product A', 100, 50),
('Product B', 200, 180),
('Product C', 150, 140);
Abfrage: Verfügbaren Bestand berechnen
SELECT product_id, product_name, total_stock - sold AS available_stock
FROM inventory;
Erwartete Ausgabe:
product_id | product_name | available_stock
------------+--------------+-----------------
1 | Product A | 50
2 | Product B | 20
3 | Product C | 10
In dieser Abfrage ziehen wir die Menge sold von total_stock ab und erhalten so den available_stock für jedes Produkt.
Alter berechnen
Die Funktion age berechnet in PostgreSQL die Differenz zwischen zwei Daten und gibt das Ergebnis als komplexen Intervalltyp mit Jahren, Monaten und Tagen zurück.
Hier ein praktischer Anwendungsfall, bei dem du das Alter von Kunden in einer Tabelle berechnen möchtest.
Angenommen, du hast eine Tabelle customers mit einer Spalte birthdate.
SELECT customer_id, birthdate, age(current_date, birthdate) AS age
FROM customers;
Erwartete Ausgabe:
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
Fazit
Die Subtraktion in PostgreSQL ist ein vielseitiges Werkzeug, das du auf Zahlen, Datumswerte und Intervalle anwenden kannst. In diesem Artikel haben wir Subtraktionen in PostgreSQL mit Zahlen und Datumswerten kennengelernt. Prüfe bei Berechnungen immer die Datentypen und achte auf ihre Kompatibilität. Bleib dran für weitere Teile der Serie, in denen wir tiefer in fortgeschrittene SQL-Konzepte eintauchen. Happy Coding!
Weitere Artikel, die dir gefallen könnten:
Beekeeper Studio ist eine kostenlose & Open-Source-PostgreSQL-GUI
Das ist der PostgreSQL-Client, nach dem ich gesucht habe! Die Oberfläche macht den Unterschied: aufgeräumt, intuitiv, leistungsstark. Tschüss, klobiges PGAdmin. - David Cyprian
Beekeeper Studio ist ein schneller, intuitiver und einfach zu bedienender PostgreSQL-Client. Er unterstützt auch viele andere Datenbanken und läuft super unter Windows, Mac und Linux.
Was PostgreSQL-Nutzer über Beekeeper Studio sagen
Anders als pgAdmin ist Beekeeper bemerkenswert einfach zu bedienen, ohne dass es an Features fehlt – und der Preis stimmt! Besonders nützlich ist die Backup-Funktion für Datenbanken. Einfach großartige Software.
Fantastisches Tool, die praktischste IDE, die ich bisher für die Administration von Postgres- und MySql-Datenbanken gefunden habe – funktioniert einfach, ohne Theater :-)