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
|
||||
- [Tag 5](#tag-5)
|
||||
- [Inhaltsverzeichnis](#inhaltsverzeichnis)
|
||||
- [Select Alias](#select-alias)
|
||||
- [Select Alias \[↗\]](select-alias.md)
|
||||
- [Select Join \[↗\]](select-join.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%';
|
||||
```
|
||||
- [Select Group \[↗\]](select-group.md)
|
||||
- [Aggregatsfunktionen \[↗\]](aggregatsfunktionen.md)
|
|
@ -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