SQL Distinct etc

This commit is contained in:
2026-04-25 20:48:40 +02:00
parent 7f3fe53cb2
commit 6ed6c08abd
+79 -4
View File
@@ -1,9 +1,84 @@
# SQL # SQL
## Distinct
Dubletten verhindern ## Conditions Basics
`select distinct …` Manchmal möchten wir Datensätze abrufen, die eine bestimmte Bedingung erfüllen.
Zum Beispiel
- alle Datensätze abrufen, die den Familiennamen „Aothly“ haben
- alle Datensätze abrufen, bei denen der Betrag größer als 5 ist
- Alle Datensätze mit dem Land „Mexico“ abrufen
Um Bedingungen hinzuzufügen, können wir das `WHERE`-Schlüsselwort verwenden
Zum Beispiel hier ist eine **Verkäufe**-Tabelle:
| Münze | Menge |
| ----- | ----- |
| AGK | 13 |
| GOL | 21 |
| KLA | 15 |
| AGK | 18 |
Um alle Datensätze mit der Coin „AGK“ abzurufen, schreibt man:
`SELECT * FROM sales WHERE coin = 'AGK'`
Um alle Datensätze mit `amount` kleiner oder gleich 20 abzurufen, schreibt man:
`SELECT * FROM sales WHERE amount <= 20`
## Unique values
Angenommen man hat die folgende Tabelle:
**Verkäufe**
| | Land | Stadt | Betrag |
| ---- | ----------- | -------- | ------ |
| 1 | Polen | Warschau | 13 |
| 2 | Deutschland | Berlin | 24 |
| 3 | Polen | Katowice | 56 |
Man möchte alle Länder wissen, in denen das Produkt verkauft wurde.
Wenn man die normale Abfrage, die wir kennen, verwenden: `SELECT country from sales` liefert sie `Poland`, `Germany`, `Poland`. Das ist nicht das, wonach wir suchen, weil Polen zweimal wiederholt wird.
Um es zu lösen, können wir das `DISTINCT`-Schlüsselwort verwenden:
## NOT
Das `NOT`-Schlüsselwort bedeutet, dass man nicht möchte, dass die Bedingung erfüllt wird.
Zum Beispiel betrachte man die folgende **people**-Tabelle:
| Name | Alter | Geschlecht |
| ------ | ----- | ---------- |
| Joas | 13 | männlich |
| Holwa | 17 | männlich |
| Nohlas | 24 | weiblich |
| Polar | 23 | männlich |
| Loopa | 18 | weiblich |
`SELECT * FROM people WHERE NOT gender = 'male'`
Dies wird das Ergebnis sein:
| Name | Alter | Geschlecht |
| ------ | ----- | ---------- |
| Nohlas | 24 | weiblich |
| Loopa | 18 | weiblich |
Das `NOT`-Schlüsselwort kehrt die Bedingung im Wesentlichen um. Zum Beispiel sind die folgenden Abfragen gleich:
`WHERE age > 20`
`WHERE NOT age <= 20`
## Vorrang ## Vorrang
@@ -17,7 +92,7 @@ Dubletten verhindern
`DESC` --> Absteigend --< Größter Wert zuerst `DESC` --> Absteigend --< Größter Wert zuerst
### Beispiele und Erklärung ### Beispiele und Erklärung
Beim Abfragen einer Datenbank kann die Organisation Ihrer Ergebnisse in einer sinnvollen Reihenfolge die Datenanalyse erheblich effizienter machen. Um das Ergebnis zu sortieren, verwenden wir das ORDER BY-Schlüsselwort und danach sollten wir angeben, nach welchem Feld wir sortieren. Standardmäßig sortiert es in aufsteigender Reihenfolge. Beim Abfragen einer Datenbank kann die Organisation der Ergebnisse in einer sinnvollen Reihenfolge die Datenanalyse erheblich effizienter machen. Um das Ergebnis zu sortieren, verwendet man das ORDER BY-Schlüsselwort und danach sollte man angeben, nach welchem Feld man sortiert. Standardmäßig sortiert es in aufsteigender Reihenfolge.
Zum Beispiel betrachten Sie die folgende **competition**-Tabelle: Zum Beispiel betrachten Sie die folgende **competition**-Tabelle: