- Window Functions worden niet uitgelegd in het SQL Basis boek "TySQL in 10 minutes"
- Oracle & MS SQL Server ondersteunen Window Functions. MySQL heeft ondersteuning voor Window Functions vanaf server versie 8
SELECT VERSION( );
- Aggregaatfuncties vatten gegevens uit meerdere rijen samen in één resultaat
- Met de GROUP BY-clausule kun je aggregatiefuncties toepassen op een subset van rijen
- De aggregatiefuncties en of de GROUP BY verminderen het aantal rijen dat door de query wordt geretourneerd
- Net als de aggregatiefuncties met de GROUP BY-clausule werken window-functies ook op een subset van rijen, maar verminderen ze niet het aantal rijen dat door de query wordt geretourneerd.
Geef per order alle prducten en de totaalprijs van de order (18)
SELECT order_num AS OrderNummer,
prod_id AS ProductCode,
SUM(quantity * item_price) OVER (PARTITION BY order_num) OrderTotaal
FROM OrderItems;
OrderNummer | ProductCode | OrderTotaal |
20005 | BR01 | 1648 |
20005 | BR03 | 1648 |
20006 | BR01 | 329.6 |
20006 | BR02 | 329.6 |
20006 | BR03 | 329.6 |
20007 | BR03 | 1696 |
20007 | BNBG01 | 1696 |
20007 | BNBG02 | 1696 |
20007 | BNBG03 | 1696 |
20007 | RGAN01 | 1696 |
20008 | RGAN01 | 189.6 |
20008 | BR03 | 189.6 |
20008 | BNBG01 | 189.6 |
20008 | BNBG02 | 189.6 |
20008 | BNBG03 | 189.6 |
20009 | BNBG01 | 1867.5 |
20009 | BNBG02 | 1867.5 |
20009 | BNBG03 | 1867.5 |
-
Geef per product de leverancier en het totaalbedrag van de producten van de leverancier (9)