GROUP BY: Het juiste gebruik ervan

Door Joren de Wit, 20 jaar geleden, 10.797x bekeken

Hoe gebruik je een GROUP BY clausule correct in je SQL query?

Gesponsorde koppelingen

Inhoudsopgave

  1. Inleiding
  2. Uitleg GROUP BY en gebruikte basisgegevens
  3. Fout gebruik van de GROUP BY clausule
  4. GROUP BY en verzamelingsfuncties
  5. Groeperen op meerdere kolommen
  6. GROUP BY en HAVING
  7. GROUP BY Modifiers
  8. Slotwoord en referenties

 

Er zijn 6 reacties op 'Group by het juiste gebruik ervan'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Klaasjan Boven
Klaasjan Boven
20 jaar geleden
 
0 +1 -0 -1
Eindelijk, Blanche eindelijk iemand met het juiste gebruik van group by en having

je in een WHERE geen verzamelingsfuncties op mag nemen en in een HAVING wel.

zou ik vervangen door

je in een WHERE geen verzamelingsfuncties op kunt nemen en in een HAVING alleen maar verzamelfuncties oftwel geen restricties die je normaal in een WHERE zou stoppen
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
Quote:
Ik wil je aanraden om niet van de SQL standaard af te wijken, op die manier is je code ook geschikt voor andere SQL databases.
Ik zou hier toch maar gewoon melden dat je met correct gebruik van GROUP BY betrouwbare resultaten krijgt. Lijkt mij belangrijker dan een eventuele andere database. Het 'probleem' met andere databases is, is dat de query gewoon fout is en andere databases een foute query gewoon afkeuren. Wel zo handig.

Overigens kun je MySQL ook zo instellen dat een foute query ook gewoon wordt afgekeurd. Helaas doen de meeste hostingproviders daar niets mee.

Hier vind je overigens nog wat extra uitleg (in het NL) over GROUP BY.

Edit: Zie de MySQL-handleiding hoe je 'Strict' moet inschakelen.
Joren de Wit
Joren de Wit
20 jaar geleden
 
0 +1 -0 -1
Quote:
je in een WHERE geen verzamelingsfuncties op kunt nemen en in een HAVING alleen maar verzamelfuncties.
Dat is niet helemaal waar. In een HAVING mag je namelijk ook een kolom opnemen waarvan de waarden binnen 1 groep niet veranderen, oftewel een kolom die je in je GROUP BY clause hebt opgenomen.

Quote:
Ik zou hier toch maar gewoon melden dat je met correct gebruik van GROUP BY betrouwbare resultaten krijgt.
Aangepast. Dit is inderdaad een betere (directe) reden om niet van de standaard af te wijken.
Jan Koehoorn
Jan Koehoorn
20 jaar geleden
 
0 +1 -0 -1
Lekkere heldere tut, Blanche :-)
Ruud
ruud
19 jaar geleden
 
0 +1 -0 -1
Ik heb een tabel waarin ik mijn gegevens zet.

id registratie toestel maatschappij locatie
+----+-----------+-------------------+------------------+--------------+
| 1 | PH-MPQ | Boeing 747-400 | Martinair Cargo | Schiphol |
+----+-----------+-------------------+------------------+--------------+
| 2 | PH-XRA | Boeing 737-500 | Transavia | Eindhoven |
+----+-----------+-------------------+------------------+--------------+
| 3 | PH-MPS | Boeing 747-400 | Martinair Cargo | Dusseldorf |
+----+-----------+-------------------+-------------------+-------------+

Nu worden de resultaten ook rij voor rij weergegeven zoals hierboven staat. Ik zou eigenlijk willen dat dit gebeurd geordend op maatschappij, dus:

Martinair Cargo:
------------------------------------------------------
PH-MPQ - Boeing 747-400 - Schiphol
PH-MPQ - Boeing 747-400 - Dusseldorf

Transavia
------------------------------------------------------
PH-XRA - Boeing 737-500 - Eindhoven

Hoe maak je zoiets? Zou iemand kunnen helpen?
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Joren de Wit
Joren de Wit
19 jaar geleden
 
0 +1 -0 -1
Ik denk dat je deze vraag beter in het forum kunt stellen, het heeft in principe namelijk niets met GROUP BY te maken.

Dit is iets dat je met PHP op zult moeten lossen: selecteer alle gegevens waarbij je sorteert op maatschappij. Vervolgens houd je in PHP tijdens het doorlopen van de resultaat set in een variabele bij met welke maatschappij je bezig bent. Als die verschilt van de vorige loop echo je hem opnieuw aangezien je dan bij een andere maatschappij aangekomen bent.

Maar zoals ik al zei, ik denk dat je hier beter op het forum verder over kunt gaan...

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

Inhoudsopgave

  1. Inleiding
  2. Uitleg GROUP BY en gebruikte basisgegevens
  3. Fout gebruik van de GROUP BY clausule
  4. GROUP BY en verzamelingsfuncties
  5. Groeperen op meerdere kolommen
  6. GROUP BY en HAVING
  7. GROUP BY Modifiers
  8. Slotwoord en referenties

Labels

  • Geen tags toegevoegd.

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.