Uitgaande van de volgende tabel, als voorbeeld:
Op deze (fictieve) data set laat ik een query los die gegroepeerd is op huis_id (GROUP BY `huis_id` - omdat er in de daadwerkelijke tabel nog veel meer datavelden staan waar de sommen van benodigd zijn).
Nu wil ik tevens in die result set de gemiddelde kostprijs per deur hebben.
In ons voorbeeld zouden we twee rijen geretourneerd krijgen met de volgende query;
Is er een eenvoudige methode - die ik over het hoofd zie - waarmee in die result set tevens de gemiddelde prijs van een deur opgenomen kan zijn, van de betreffende `huis_is` groep?
Met andere woorden, is er een query waarmee ik de hierna volgende result set kan verkrijgen? Of moet ik noodgedwongen met twee queries gaan werken?
Beoogde result set:
Of is het verstandig om de gemiddelde prijs per deur als extra veld op te nemen in de tabel, zodat die waarde reeds bekend zal zijn per row?
Note: uiteraard zou je er in dit voorbeeld ook voor kunnen kiezen om de prijs per deur op te slaan in je tabel, in plaats van de totaal prijs. Dan zou het eenvoudig op te lossen zijn. Echter gaat het mij om de vraag of het mogelijk is om PER RIJ een berekening uit te voeren, en het gemiddelde van die UITKOMST op te nemen in je GROUPED result set...
id | huis_id | deuren_aantal | deuren_prijs_totaal |
1 | 1 | 2 | $20.00 |
2 | 1 | 2 | $25.00 |
3 | 2 | 3 | $30.00 |
4 | 2 | 4 | $15.00 |
Op deze (fictieve) data set laat ik een query los die gegroepeerd is op huis_id (GROUP BY `huis_id` - omdat er in de daadwerkelijke tabel nog veel meer datavelden staan waar de sommen van benodigd zijn).
Nu wil ik tevens in die result set de gemiddelde kostprijs per deur hebben.
In ons voorbeeld zouden we twee rijen geretourneerd krijgen met de volgende query;
code:
1
2
3
4
| SELECT `huis_id`, COUNT(`id`) AS `aantal_rows` FROM `tablename` GROUP BY `huis_id` ORDER BY `huis_id` ASC |
Is er een eenvoudige methode - die ik over het hoofd zie - waarmee in die result set tevens de gemiddelde prijs van een deur opgenomen kan zijn, van de betreffende `huis_is` groep?
Met andere woorden, is er een query waarmee ik de hierna volgende result set kan verkrijgen? Of moet ik noodgedwongen met twee queries gaan werken?
Beoogde result set:
huis_id | aantal_rows | avg prijs per deur |
1 | 2 | $11.25 |
2 | 2 | $6.875 |
Of is het verstandig om de gemiddelde prijs per deur als extra veld op te nemen in de tabel, zodat die waarde reeds bekend zal zijn per row?
Note: uiteraard zou je er in dit voorbeeld ook voor kunnen kiezen om de prijs per deur op te slaan in je tabel, in plaats van de totaal prijs. Dan zou het eenvoudig op te lossen zijn. Echter gaat het mij om de vraag of het mogelijk is om PER RIJ een berekening uit te voeren, en het gemiddelde van die UITKOMST op te nemen in je GROUPED result set...
[ Voor 12% gewijzigd door Verwijderd op 07-11-2009 19:02 . Reden: opmaak foutje... ]