WHERE oder HAVING bei mindestens drei Bestellungen?

Lernfragen und Praxis · 1 Antworten

STARTBEITRAG

#1

Kleiner Vergleich zum Nachbauen: Kunden mit mindestens drei offenen Bestellungen.

A: WHERE status = 'offen', GROUP BY kunde_id, HAVING COUNT(*) >= 3.
B: Erst alle Bestellungen gruppieren und den Status dann in HAVING prüfen.

An welchem Datensatz sieht man am schnellsten, warum B keine gleichwertige Abkürzung ist?

0

Antworten

1
Antwort auf das Thema
#2

Nimm einen Kunden mit zwei offenen und drei abgeschlossenen Bestellungen. Für deine Frage soll er nicht erscheinen. A zählt nur die zwei offenen. Bei B wäre außerdem unklar, welcher einzelne Status für die gesamte Gruppe gelten soll. Wenn du beides zählen willst, brauchst du eine bedingte Aggregation.

0