MySQL: Find find top 2 over mest brugte værdier
Hej Folkens.Jeg knokler med at få SQL til at tage de to værdier som er mest brugt i en database.
tabelen (test) ser således ud:
| pid | uid |
_____________
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 4 | 1 |
| 4 | 1 |
| 1 | 2 |
| 2 | 2 |
| 3 | 2 |
| 4 | 2 |
| 1 | 3 |
| 2 | 3 |
Det jeg gerne vil have ud af databasen er pid = 1 og 2 fordi, det de værdi som flest brugere(uid) har valgt. Brugerne(uid) må kun tælle den samme pid op én gang, og det er det som giver mig problemer.
Jeg er kommet her til:
SELECT pid
FROM test
GROUP BY pid
ORDER BY count(*) DESC LIMIT 2
Det giver resultatet 4 og 1, fordi den ikke tager hensyn til at samme uid ikke må tælle med flere gange. Resultatet skulle gerne gå hen og blive 1 og 2.
Håber nogen forstår hvad mit problem er, da jeg synes det er ret svært at forklarer :-)
På forhånd tak for svarene.