Help! die aggregate functies
Oke, misschien een eng woord voor sommige mensen, maar het levert dan ook problemen op als je niet weet hoe je er mee om moet gaan
Quote:
ag·gre·ga·tie (de ~ (v.), ~s, ~s, ~s)
1 samenvoeging => vereniging
1 samenvoeging => vereniging
Om dit probleem op te lossen hebben we 'Aggregate functies'. Waar het in bovenstaand voorbeeld onduidelijk was hoe B samengevat moest worden om bij de unieke A's te passen, kunnen we de DBMS natuurlijk vertellen welke waarde hij dan moet gebruiken. Zie bijvoorbeeld deze query:
sql:
SELECT a, max(b) FROM Table GROUP BY a
Hier komt het volgende resultaat uit:
A | max(B)
1 | 2
2 | 4
Door de max-functie los te laten op kolom B, hebben we de database duidelijk gemaakt hoe hij moet groeperen. Dus in dit geval groupeert hij op A, en vervolgens laat ie de 'aggregerende functie' los op de verzamelde waardes van B die bij die ene A terecht horen. Andere voorbeelden van aggregate functies zijn min(), avg() en count().
Een ander voorbeeld:
sql:
SELECT a, max(b), count(c) FROM Table GROUP BY a
Hier komt uit:
A | max(B) | count(C)
1 | 2 | 4
2 | 4 | 4
Oftewel we grijpen de A's bij elkaar, en selecteren daarbinnen de hoogste B's en het aantal C's dat we hebben 'weggegroepeerd'.
Hoeveel kolommen kan ik aggregeren en groeperen?
Zoveel je wilt :) Maar let op de hoofdregel: zodra je een GROUP BY-clause gebruikt, moeten alle geselecteerde kolommen terugkomen in de GROUP BY list oftewel een aggregate functie hebben. Een voorbeeld van groeperen op meerdere kolommen:
sql:
SELECT a, b, count(c) FROM Table GROUP BY a, b
Levert op:
A | B | count(C)
1 | 1 | 2
1 | 2 | 2
2 | 3 | 2
2 | 4 | 2
Wat is hier nu gebeurd? Allereerst hebben we gegroepeerd op A's, en daarna op de B's. Van de resulterende set hebben we vervolgens het aantal C's genomen dat 'weggeaggregeerd' is, en dat zijn er inderdaad 2 per groep. Klopt exact dus:)
« vorige pagina | volgende pagina »
Inhoudsopgave
- HELP! Mijn POST en GET forms werken niet (meer)
- ... is not a valid MySQL resource index
- Mijn sessie-variabelen worden niet opgeslagen
- Mijn file-upload form werkt niet.
- Ik heb een multiple select of meerdere checkboxes,
- Escape problemen met PHP i.c.m. databases
- multiviews
- Mod_rewrite
- Hoe werkt dat GROUP BY nu eigenlijk?
- Bij een javascript-submit of drukken op enter word
- Spaties van een <input ... value=...> worden niet
- Help! die aggregate functies
- wordt nog toegevoegt
- Ik kan de fout echt niet vinden!