Group By

Door Ivo P, 4 jaar geleden, 13.366x bekeken

Een korte uitleg hoe group by werkt en waarom het belangrijk is om de regel "alle kolommen vermelden" te hanteren.

oorspronkelijk gepubliceerd op pfz.nl

Gesponsorde koppelingen

Inhoudsopgave

  1. Group By. Hoe werkt het?

 

Er zijn 4 reacties op 'Group by'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


4 jaar geleden
 
0 +1 -0 -1
Goed idee om e.e.a. over SQL te vertellen.
Het zou mooi zijn als er wat meer in zou staan, zoals het effect van sorteren bij groeperen en indexgebruik.
Welke modifiers wat doen en hoe je GROUP BY over partities van Window functies kunt gebruiken.
Gerard van Katwijk
Gerard van Katwijk
4 jaar geleden
 
0 +1 -1 -1
Ik heb belangstelling voor alles wat niet-Windows is. :)
Aad B
Aad B
4 jaar geleden
 
0 +1 -0 -1
Group by wordt enorm veel verkeerd gebruikt en misbruikt. In het eerste voorbeeld ook, groepjes maken? Dat doe je voor dit voorbeeld niet met group by. Dat kan gewoon met order by en het opgeven van de juiste attributen. Voordeel: je werkt dan veelal via indexen. Group by gebruik je voornamelijk bij de verschillende vormen van aggregatie zoals in je voorbeeld ook min() max(). Een vaak gehoorde klacht bij group by is dat -opeens- niet alle rijen in beeld komen. Dat komt omdat de group by ervoor zorgt dat de resultaattabel alleen unieke rijen bevat. Dus in een applicatie gaat het een tijdje goed totdat er "records ontbreken" wat dan weer voor veel gedoe zorgt....oorzaak: omdat group by misbruikt is

SQL is een typische tool die je niet leert door try by example of trail on error. SQL is een niet-procedurele taal en het samenstellen van gegevens uit een model is terug te brengen naar wiskundige begrippen in de verzamelingenleer. Ik zie veel dat PHP doorgaans goed uitgevoerd wordt en dat vaak SQL een ondergeschoven kindje is en als het niet lukt er vervolgens enorme bakken gegevens naar PHP gehaald worden en daar in array's en loops verwerkt tot het gewenste resultaat.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Ivo P
Ivo P
3 jaar geleden
 
0 +1 -0 -1
@Aad,
Je beschrijft inderdaad de reden waarom ik deze "tutorial" online had gegooid.

Bij het eerste voorbeeld mis je het punt: het gaat niet om het queryen om tot de groepjes te komen, maar om te laten zien dat er prijzen horen bij bepaalde combinaties. Bijvoorbeeld de prijzen voor Opels.
Daarin kan dan zoals in de uitwerking voor de maximumprijs gezocht worden, maar dat had ook een gemiddelde of totaalprijs kunnen zijn.

Maar bottomline: SQL is inderdaad iets waar meer aandacht voor moet zijn. De benadering "ja maar het lijkt toch te kloppen" of "maar het doet *nu* wat ik wens dus het is goed" gaat te vaak na verloop van tijd mis.

En inderdaad: dan kun je uitgebreid in PHP gaan schuiven met datasets en losse query's.
En in de ontwikkel-omgeving met 100 records werkt dat wel, maar als na een tijdje je in 300.000 orders per jaar over 5 jaar loopt te roeren dan wordt een afdeling niet blij met een intranet dat 90 tot 120 seconden laadtijd nodig heeft.
Dan beter de query als startpunt nemen.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Group By. Hoe werkt het?

Labels

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.