Avatar billede gat Nybegynder
17. december 2003 - 00:04 Der er 7 kommentarer og
1 løsning

optimering af sql (MySql + PhP)

hej
Jeg har en point tabel med en masse rækker som består af et unikt id, et brugernummer, en værdi(point) og en dato.

hver gang en bruger optjener nogle point lægges en linie i tabellen med x antal point f.eks.:
UNIK  BRUGER  POINT  DATO
1111  user1    10      xx-xx-xx
1112  user2    20      xx-xx-xx
1113  user1    15      xx-xx-xx

ideen er så at jeg gerne vil kunne vise en topliste over brugerne.
ex.

1. user1 25 point
2. user2 20 point
osv.

men hvordan får jeg smartest lavet dette udtræk, kan man evt. bruge noget group by eller er man nødt til først at vælge alle brugerne og så for hver brugernummer lave en select sum??

håber i forstår

pl.
Avatar billede detox Nybegynder
17. december 2003 - 00:10 #1
Prøv:

SELECT BRUGER, SUM(POINT) AS total FROM tabel GROUP BY BRUGER ORDER BY total
Avatar billede detox Nybegynder
17. december 2003 - 00:10 #2
Hov:

SELECT BRUGER, SUM(POINT) AS total FROM tabel GROUP BY BRUGER ORDER BY total DESC
Avatar billede tofferman Nybegynder
17. december 2003 - 00:11 #3
SELECT UNIK, BRUGER, SUM(POINT) AS Optjening FROM tabelnavn
GROUP BY UNIK, BRUGER
ORDER BY Optjening DESC;
Avatar billede Slettet bruger
17. december 2003 - 00:15 #4
tofferman: Din dur ikke. Den vil give en linie for hver gang en bruger har fået point.
Avatar billede tofferman Nybegynder
17. december 2003 - 00:16 #5
Ok. Det var fordi jeg tog UNIK for at være brugernummeret.

Så har vi alle sammen ret :-)

SELECT BRUGER, SUM(POINT) AS Optjening FROM tabelnavn
GROUP BY BRUGER
ORDER BY Optjening DESC;
Avatar billede detox Nybegynder
17. december 2003 - 00:21 #6
Jamen så vil jeg da tillade mig at lægge et svar, med en bemærkning om at skal det fx være top 10, kan du bruge:

SELECT BRUGER, SUM(POINT) AS total FROM tabel GROUP BY BRUGER ORDER BY total DESC LIMIT 0,10
Avatar billede gat Nybegynder
18. december 2003 - 19:45 #7
tak for det, og undskyld svartiden
Avatar billede detox Nybegynder
20. december 2003 - 00:45 #8
Velbekommen, det er helt i orden.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester