Hoi, ik dacht om het SQL niveau wat omhoog te krijgen, de volgende vraag (ik heb het antwoord zelf al bedacht, en de gebruikte techniek vind ik erg grappig)
Stel we hebben een tabel met 3 velden:
forumid(int) - userid(int) - postcount(int)
----------PK----------
Deze tabel cached de post-count van alle users per forum. Dus bv een user heeft 312 posts gemaakt in P&W, 56 in HK, etc.
Nu willen we hier een leuk grafiekje van maken. Per forum willen we een staafdiagram met de top10 posters (dus de 10 users met het meest aantal posts in een forum).
Er is maar ruimte voor maximaal 10 staafjes, en omdat we geen gebruikers voortrekken (yeah right
) zullen we soms minder dan 10 staafjes afbeelden als de onderste gebruikers allemaal dezelfde postcount hebben. In dat geval zouden we dus mensen hebben die gedeelt 10e zijn, en meer dan 10 staafjes nodig hebben, wat dus niet kan. Overigens is het geen enkel probleem om bv gedeelt 3e te zijn, zolang er maar maximaal 10 users zijn en er geen "random" beslissingen worden genomen.
Nu de vraag: Geef een query (eentje dus, geen unions of subqueries oid, alla mysql) om de benodigde data op te halen voor alle fora. Niet meer (!), niet minder. We krijgen dus maximaal 10*count(fora) rows terug. En per fora tussen de 0 en 10 (0 als bv alle 11+ users 1 post hebben)
Stel we hebben een tabel met 3 velden:
forumid(int) - userid(int) - postcount(int)
----------PK----------
Deze tabel cached de post-count van alle users per forum. Dus bv een user heeft 312 posts gemaakt in P&W, 56 in HK, etc.
Nu willen we hier een leuk grafiekje van maken. Per forum willen we een staafdiagram met de top10 posters (dus de 10 users met het meest aantal posts in een forum).
Er is maar ruimte voor maximaal 10 staafjes, en omdat we geen gebruikers voortrekken (yeah right
Nu de vraag: Geef een query (eentje dus, geen unions of subqueries oid, alla mysql) om de benodigde data op te halen voor alle fora. Niet meer (!), niet minder. We krijgen dus maximaal 10*count(fora) rows terug. En per fora tussen de 0 en 10 (0 als bv alle 11+ users 1 post hebben)
[ Voor 0% gewijzigd door Zoijar op 04-10-2002 11:10 . Reden: PK streepje liep te ver door ]