Progress on select-group.md and file move
- Created select-group.md - Created select-alias.md from README.md so it's its own file.
This commit is contained in:
parent
f6a4a92264
commit
b2fa196612
|
@ -2,32 +2,7 @@
|
||||||
## Inhaltsverzeichnis
|
## Inhaltsverzeichnis
|
||||||
- [Tag 5](#tag-5)
|
- [Tag 5](#tag-5)
|
||||||
- [Inhaltsverzeichnis](#inhaltsverzeichnis)
|
- [Inhaltsverzeichnis](#inhaltsverzeichnis)
|
||||||
- [Select Alias](#select-alias)
|
- [Select Alias \[↗\]](select-alias.md)
|
||||||
- [Select Join \[↗\]](select-join.md)
|
- [Select Join \[↗\]](select-join.md)
|
||||||
|
- [Select Group \[↗\]](select-group.md)
|
||||||
- [Aggregatsfunktionen \[↗\]](aggregatsfunktionen.md)
|
- [Aggregatsfunktionen \[↗\]](aggregatsfunktionen.md)
|
||||||
|
|
||||||
## Select Alias
|
|
||||||
SQL Script-Ergänzung:
|
|
||||||
```sql
|
|
||||||
-- -- Aufgabe 1 -- --
|
|
||||||
SELECT kundenliste.kunde_id, kundenliste.name, kundenliste.fk_ort_postleitzahl
|
|
||||||
FROM kunden AS kundenliste
|
|
||||||
WHERE kundenliste.fk_ort_postleitzahl > 80000;
|
|
||||||
|
|
||||||
SELECT o.name, k.name, k.fk_ort_postleitzahl
|
|
||||||
FROM kunden AS k INNER JOIN orte AS o
|
|
||||||
ON k.fk_ort_postleitzahl = o.id_postleitzahl
|
|
||||||
WHERE o.name LIKE '%n';
|
|
||||||
|
|
||||||
-- -- Aufgabe 2 -- --
|
|
||||||
SELECT k.kunde_id, k.name, prfz.name
|
|
||||||
FROM kunden AS k INNER JOIN orte AS prfz
|
|
||||||
ON prfz.id_postleitzahl = k.fk_ort_postleitzahl
|
|
||||||
ORDER BY k.kunde_id;
|
|
||||||
|
|
||||||
SELECT k.name, o.id_postleitzahl, o.name
|
|
||||||
FROM kunden AS k INNER JOIN orte AS o
|
|
||||||
ON k.fk_ort_postleitzahl = o.id_postleitzahl
|
|
||||||
WHERE k.name LIKE '%a%'
|
|
||||||
AND o.name LIKE '%u%';
|
|
||||||
```
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
# Select Alias
|
||||||
|
|
||||||
|
```sql
|
||||||
|
-- -- Aufgabe 1 -- --
|
||||||
|
SELECT kundenliste.kunde_id, kundenliste.name, kundenliste.fk_ort_postleitzahl
|
||||||
|
FROM kunden AS kundenliste
|
||||||
|
WHERE kundenliste.fk_ort_postleitzahl > 80000;
|
||||||
|
|
||||||
|
SELECT o.name, k.name, k.fk_ort_postleitzahl
|
||||||
|
FROM kunden AS k INNER JOIN orte AS o
|
||||||
|
ON k.fk_ort_postleitzahl = o.id_postleitzahl
|
||||||
|
WHERE o.name LIKE '%n';
|
||||||
|
|
||||||
|
-- -- Aufgabe 2 -- --
|
||||||
|
SELECT k.kunde_id, k.name, prfz.name
|
||||||
|
FROM kunden AS k INNER JOIN orte AS prfz
|
||||||
|
ON prfz.id_postleitzahl = k.fk_ort_postleitzahl
|
||||||
|
ORDER BY k.kunde_id;
|
||||||
|
|
||||||
|
SELECT k.name, o.id_postleitzahl, o.name
|
||||||
|
FROM kunden AS k INNER JOIN orte AS o
|
||||||
|
ON k.fk_ort_postleitzahl = o.id_postleitzahl
|
||||||
|
WHERE k.name LIKE '%a%'
|
||||||
|
AND o.name LIKE '%u%';
|
||||||
|
```
|
|
@ -0,0 +1,93 @@
|
||||||
|
# SELECT GROUP
|
||||||
|
|
||||||
|
### SELECT GROUP BY & ORDER BY
|
||||||
|
1. Geben Sie die Anzahl aller Schüler aus, gruppiert nach Nationalität (Spalten: "Anzahl", "Nationalität").
|
||||||
|
|
||||||
|
```sql
|
||||||
|
MariaDB [uebungSchule]> select count(id), nationalitaet from schueler group by nationalitaet;
|
||||||
|
+-----------+---------------+
|
||||||
|
| count(id) | nationalitaet |
|
||||||
|
+-----------+---------------+
|
||||||
|
| 26 | GB |
|
||||||
|
| 50 | RU |
|
||||||
|
| 27 | USA |
|
||||||
|
+-----------+---------------+
|
||||||
|
3 rows in set (0.000 sec)
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Wie viele Schüler wohnen in den einzelnen Orten? Ausgabe: "Ort", "Anzahl der Schüler" (bitte genauso), sortiert nach Anzahl der Schüler absteigend
|
||||||
|
|
||||||
|
|
||||||
|
```sql
|
||||||
|
MariaDB [uebungSchule]> SELECT orte.name AS Ort, COUNT(schueler.id) AS `Anzahl Schüler` FROM orte JOIN schueler ON orte.id = schueler.idOrte GROUP BY orte.name ORDER BY 'Anzahl Schüler' DESC;
|
||||||
|
+-------------+-----------------+
|
||||||
|
| Ort | Anzahl Schüler |
|
||||||
|
+-------------+-----------------+
|
||||||
|
| Wasser | 21 |
|
||||||
|
| Waldkirch | 12 |
|
||||||
|
| Breisach | 28 |
|
||||||
|
| Freiburg | 21 |
|
||||||
|
| Reute | 16 |
|
||||||
|
| Emmendingen | 5 |
|
||||||
|
+-------------+-----------------+
|
||||||
|
6 rows in set (0.001 sec)
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Erstellen Sie eine Liste, aus der ersichtlich wird, wie viele Lehrer die einzelnen Fächer unterrichten, sortiert nach Anzahl absteigend. Ausgabe: Fachbezeichnung, Anzahl
|
||||||
|
|
||||||
|
```sql
|
||||||
|
MariaDB [uebungSchule]> SELECT faecher.fachbezeichnung AS Fachbezeichnung, COUNT(DISTINCT idLehrer) AS Anzahl FROM lehrer_hat_faecher JOIN faecher ON lehrer_hat_faecher.idFaecher = faecher.id WHERE lehrer_hat_faecher.idFaecher > 0 GROUP BY lehrer_hat_faecher.idFaecher ORDER BY Anzahl DESC;
|
||||||
|
+-----------------+--------+
|
||||||
|
| Fachbezeichnung | Anzahl |
|
||||||
|
+-----------------+--------+
|
||||||
|
| Englisch | 7 |
|
||||||
|
| Biologie | 7 |
|
||||||
|
| Chemie | 6 |
|
||||||
|
| Religion | 6 |
|
||||||
|
| Mathe | 6 |
|
||||||
|
| Musik | 6 |
|
||||||
|
| Deutsch | 6 |
|
||||||
|
| Ethik | 5 |
|
||||||
|
| Physik | 5 |
|
||||||
|
| Informatik | 5 |
|
||||||
|
| Russisch | 4 |
|
||||||
|
+-----------------+--------+
|
||||||
|
11 rows in set (0.001 sec)
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Erstellen Sie eine Liste, aus der ersichtlich wird, welche Lehrer die jeweiligen Fächer unterrichten, sortiert nach Anzahl der Lehrer absteigend. Pro Fach bitte nur eine Zeile! Ausgabe: Fachbezeichnung, Lehrerliste (bitte KEINE Spalte, in der die Anzahl der Lehrer steht).
|
||||||
|
|
||||||
|
```sql
|
||||||
|
MariaDB [uebungSchule]> SELECT
|
||||||
|
-> faecher.fachbezeichnung AS Fachbezeichnung,
|
||||||
|
-> GROUP_CONCAT(DISTINCT lehrer.name SEPARATOR ', ') AS Lehrerliste
|
||||||
|
-> FROM lehrer_hat_faecher
|
||||||
|
-> JOIN faecher ON lehrer_hat_faecher.idFaecher = faecher.id
|
||||||
|
-> JOIN lehrer ON lehrer_hat_faecher.idLehrer = lehrer.id
|
||||||
|
-> WHERE lehrer_hat_faecher.idFaecher > 0
|
||||||
|
-> GROUP BY lehrer_hat_faecher.idFaecher
|
||||||
|
-> ORDER BY COUNT(DISTINCT lehrer.id) DESC;
|
||||||
|
+-----------------+--------------------------------------------------------------+
|
||||||
|
| Fachbezeichnung | Lehrerliste |
|
||||||
|
+-----------------+--------------------------------------------------------------+
|
||||||
|
| Englisch | Bauer, Betzold, Bühler, Hartz, Pfeffersack, Rauert, Schmitt |
|
||||||
|
| Biologie | Bruns, Huber, Lürcher, Maler, Müller, Oettle, Tschuck |
|
||||||
|
| Deutsch | Bohner, Bühler, Mahler, Maier, Sauter, Schmitt |
|
||||||
|
| Mathe | Bohner, Bohnert, Metz, Petersen, Ruck, Sauter |
|
||||||
|
| Musik | Bock, Bruns, Hartz, Maler, Ruck, Zelawat |
|
||||||
|
| Religion | Maler, Müller, Oettle, Sauter, Schneider, Tschuck |
|
||||||
|
| Chemie | Bauer, Betzold, Lürcher, Mahler, Maier, Zelawat |
|
||||||
|
| Informatik | Bock, Bohnert, Hartz, Petersen, Pfeiffer |
|
||||||
|
| Ethik | Bercher, Huber, Hunger, Ruck, Sauter |
|
||||||
|
| Physik | Bauer, Bercher, Lürcher, Maier, Metz |
|
||||||
|
| Russisch | Bauer, Hartz, Pfeiffer, Tschuck |
|
||||||
|
+-----------------+--------------------------------------------------------------+
|
||||||
|
11 rows in set (0.001 sec)
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Wir brauchen eine Liste, die die Schülernamen auflistet und die Fächer, in denen diese Schüler unterrichtet werden. Ausgabe: "Schülername", "Lehrer", "Fächer"
|
||||||
|
|
||||||
|
|
||||||
|
```sql
|
||||||
|
-- Not completed
|
||||||
|
```
|
Loading…
Reference in New Issue