De volgende query
geeft de resultaten die ik wil:
De query die ik in eerste instantie logisch vond, zonder de DISTINCT in de COUNT (2x) niet:
Ik vind het ook vreemd dat de waarden vermenigvuldigd (in plaats van opgeteld) worden en in beide kolommen staan. Maar mijn vraag is vooral: is mijn eerste query wel de juiste manier om zo'n GROUP BY uit te voeren?
Hopelijk lever ik genoeg informatie, anders leg ik het natuurlijk graag nog uitgebreider uit
SQL:
1
2
3
4
5
6
7
8
| SELECT a.titel AS artikel, COUNT(DISTINCT al.leverancier_id) AS leverancier_aantal, COUNT(DISTINCT am.maand_id) AS maand_aantal FROM artikel a LEFT JOIN artikel_maand am ON (a.id = am.artikel_id) LEFT JOIN artikel_leverancier al ON (a.id = al.artikel_id) GROUP BY a.id |
geeft de resultaten die ik wil:
| artikel | leverancier_aantal | maand_aantal |
| Banaan | 2 | 5 |
| Appel | 2 | 4 |
| Bloemkool | 2 | 5 |
| Prei | 2 | 2 |
| Gehaktbal | 2 | 0 |
| Koffie | 1 | 0 |
De query die ik in eerste instantie logisch vond, zonder de DISTINCT in de COUNT (2x) niet:
| artikel | leverancier_aantal | maand_aantal |
| Banaan | 10 | 10 |
| Appel | 8 | 8 |
| Bloemkool | 10 | 10 |
| Prei | 4 | 4 |
| Gehaktbal | 2 | 0 |
| Koffie | 1 | 0 |
Ik vind het ook vreemd dat de waarden vermenigvuldigd (in plaats van opgeteld) worden en in beide kolommen staan. Maar mijn vraag is vooral: is mijn eerste query wel de juiste manier om zo'n GROUP BY uit te voeren?
Hopelijk lever ik genoeg informatie, anders leg ik het natuurlijk graag nog uitgebreider uit