Uitleg GROUP BY en gebruikte basisgegevens
Om duidelijk de werking van een GROUP BY clausule te laten zien, maak ik in deze tutorial gebruik van een tabel genaamd 'punten'. In deze tabel worden tijdens een meerdaagse wedstrijd de door deelnemers behaalde punten opgeslagen. Tevens wordt opgeslagen op welke datum ze die punten behaald hebben.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
+----+-------+--------+------------+
| id | naam | aantal | datum |
+----+-------+--------+------------+
| 1 | Piet | 115 | 2007-07-11 |
| 2 | Karel | 230 | 2007-07-11 |
| 3 | Piet | 45 | 2007-07-11 |
| 4 | Kees | 135 | 2007-07-11 |
| 5 | Tom | 190 | 2007-07-12 |
| 6 | Karel | 150 | 2007-07-12 |
| 7 | Kees | 30 | 2007-07-12 |
| 8 | Piet | 90 | 2007-07-12 |
+----+-------+--------+------------+
| id | naam | aantal | datum |
+----+-------+--------+------------+
| 1 | Piet | 115 | 2007-07-11 |
| 2 | Karel | 230 | 2007-07-11 |
| 3 | Piet | 45 | 2007-07-11 |
| 4 | Kees | 135 | 2007-07-11 |
| 5 | Tom | 190 | 2007-07-12 |
| 6 | Karel | 150 | 2007-07-12 |
| 7 | Kees | 30 | 2007-07-12 |
| 8 | Piet | 90 | 2007-07-12 |
+----+-------+--------+------------+
Wat betreft normlisatie is deze tabel natuurlijk geen hoogstandje, ik zou immers eigenlijk een aparte tabel voor de deelnemers moeten gebruiken. Echter voor het doel van deze tutorial is het een stuk duidelijker om de tabel op deze manier te gebruiken.
Wat een GROUP BY clausule in een query doet, is het groeperen van gegevens. Er wordt gegroepeert op alle kolommen die in de GROUP BY opgenomen zijn. Als ik bijvoorbeeld in bovenstaande tabel groepeer op de kolom 'naam' worden alle records waarvan de naam hetzelfde is, samengenomen.
Later in deze tutorial zal ik verder ingaan op de precieze werking van de GROUP BY. Nu zal ik eerst veel voorkomende foute gebruik van de GROUP BY clausule laten zien.
« vorige pagina | volgende pagina »
Inhoudsopgave
- Inleiding
- Uitleg GROUP BY en gebruikte basisgegevens
- Fout gebruik van de GROUP BY clausule
- GROUP BY en verzamelingsfuncties
- Groeperen op meerdere kolommen
- GROUP BY en HAVING
- GROUP BY Modifiers
- Slotwoord en referenties