Database Reference
In-Depth Information
SELECT venue_id, count(*)
SELECT venue_id, count(*)
OVER (PARTITION BY venue_id)
FROM events
FROM events
GROUP BY venue_id
ORDER BY venue_id;
ORDER BY venue_id;
venue_id | count
venue_id | count
----------+-------
----------+-------
1 | 1
1 | 1
2 | 2
2 | 2
2 | 2
3 | 1
| 3
3 | 1
| 3
| 3
| 3
Abbildung 4: Die Ergebnisse der Fensterfunktionen lassen die Ergebnisse pro Gruppe
nicht einbrechen.
Während eine GROUP BY -Klausel einen Datensatz für jeden passenden Grup-
penwert zurückgibt, kann eine Fensterfunktion einen separaten Datensatz
für jede Zeile zurückliefern. Eine visuelle Darstellung sehen Sie in Abbil-
dung 4, Die Ergebnisse der Fensterfunktionen lassen die Ergebnisse pro Grup-
pe nicht einbrechen. , auf Seite 28. Sehen wir uns an, was Fensterfunktionen
leisten können.
Fensterfunktionen geben alle Treffer zurück und replizieren die Ergebnisse
jeder Aggregatfunktion.
SELECT title, count( * ) OVER (PARTITION BY venue _ id) FROM events;
Wir betrachten PARTITION BY gerne als einen Verwandten von GROUP BY ,doch
statt die Ergebnisse aus der SELECT -Attributliste zu erzeugen (und damit zu
einer kleineren Ergebnisliste zusammenzufassen), gibt sie die gruppierten
Werte wie jedes andere Feld zurück (die Berechnung erfolgt für die gruppierte
Variable, ist ansonsten aber einfach ein weiteres Attribut). Oder, im SQL-
Search WWH ::




Custom Search