10. november 2003 - 20:44Der er
25 kommentarer og 1 løsning
Group by i MySql
Hej!
Jeg har en masse poster i en MySQL-database. Alle dem har et felt med et tal. Jeg skal så have en liste med de 10 tal der fremkommer mest i tabellen. Mener at man gør det med noget group by, men kan ikke helt hitte koden...
set rs = Conn.Execute("select land,count(*) as antal from brugere group by land order by antal desc limit 0,10") Response.Write "Top 10 member countries (Country of origin)<br>" Do until rs.EOF or rs.BOF Response.Write "<img src=""images/flag/" & rs("Antal") & ".gif"" border=""0"">" rs.movenext loop rs.close set rs = nothing
den gør ikke det jeg gerne vil have den til ... :( Den skal skrive de ti lande hvor der er flest medlemmer fra. Hvad er tallet 3 så et udtryk for når den udskriver det???
Du har jo selv lavet koden og skrevet: rs("Antal") hvor du udskriver så du får et gæt hvad de 3 er ;) og hvad du skal skrive i stedet for Antal når du kigger på din SQL sætning igen..:
;) Count(*) tæller et antal records og når du har Group by vil den tælle et antal for hver "gruppe". Og du udskriver 3 fordi der netop er 3 record med værdien 2 i land. For at udskrive landet skriver du bare kolonne "land" og ikke "Antal" ud i dit loop.
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.