

# Übung (Basis: Tabelle Flugdaten)
-> `datum.sql`

## A1

### Aufgabenstellung

Gib alle Flüge aus, die im Oktober 2025 starten.

### Lösung
```sql

SELECT *
FROM fluege
WHERE MONTH(abflug) = 10 AND YEAR(abflug) = 2025
```

## A2

### Aufgabenstellung

Zeige das Datum und die Uhrzeit des Abflugs und der Ankunft getrennt an.

### Lösung
```sql

SELECT 
-- Abflug
DATE(abflug), TIME(abflug),
-- Ankunft
DATE(ankunft), TIME(ankunft)

FROM fluege
```

## A3

### Aufgabenstellung

Berechne die Flugdauer in hh:mm:ss für jeden Flug. (→TIMEDIFF)

### Lösung

```sql
SELECT SEC_TO_TIME(TIMESTAMPDIFF(SECOND, abflug, ankunft)) AS Flugzeit
FROM fluege
```

## A4

### Aufgabenstellung

Berechne die Flugdauer in Minuten für jeden Flug. (→TIMEDIFF)

### Lösung

```sql
SELECT TIMESTAMPDIFF(MINUTE, abflug, ankunft) AS Flugzeit
FROM fluege
```

## A5

### Aufgabenstellung

Zeige alle Flüge, die länger als 3 Stunden dauern

### Lösung

```sql
SELECT *
FROM fluege
WHERE TIMESTAMPDIFF(HOUR, abflug, ankunft) > 3
```

## A6

### Aufgabenstellung

Formatiere das jeweilige Abflugdatum in folgendem Format: **07.10.2025 - 14:30 Uhr**

### Lösung

```sql
SELECT DATE_FORMAT(abflug, '%d.%m.%Y - %H:%i Uhr') AS ablfug_formatiert
FROM fluege
```

## A7

### Aufgabenstellung

Ermittle die Anzahl der Flüge pro Monat

### Lösung

```sql
SELECT MONTHNAME(abflug) AS Monatsname, COUNT(*) AS Anzahl_Fluege
FROM fluege
GROUP BY MONTH(abflug)
ORDER BY MONTH(abflug);
```
### Erklärung:
mit `COUNT(*)` werden die Ergebnisse gezählt und nach dem Monat mit `GROUB BY MONTH(abflug)` gruppiert und mit `ORDER BY MONTH(abflug)` nach dem Monat sortiert

## A8

### Aufgabenstellung

Zeige alle Flüge, die am Wochenende abfliegen X

### Lösung

```sql
SELECT *
FROM fluege
WHERE DAYOFWEEK(abflug) IN (7, 1);
```

### Erklärung
Es werden nur die Einträge angezeigt wo der Tag des Abflugs `7` oder `1` ist.

> `7` -> Samstag 
> `1` -> Sonntag
>
> Da die Woche in USA am Sonntag startet und nicht am Montag