webForumDet fria alternativet
Logga in / Bli medlem

GROUP vid COUNT(), MAX(), MIN() osv

Databaser & SQL

4 svar · 502 visningar · startad av Jörgen HP

Medlem sedan feb. 20012 412 inlägg
Frågan#1

Hej!

Chansar på detta forumet denna gången. :e

Har en SQL-fråga som ser ut så här:

sql ="SELECT req_Username, AnvId, " & _
"COUNT(*) AS Members " & _
"FROM Profil GROUP BY AnvID " & _
"ORDER BY req_Username DESC LIMIT 1"

Eftersom jag får felmess vid användning av COUNT(), MAX(), MIN() utan GROUP undrar jag hur man får den att räkna rätt. Jag ska räkna antal poster i en tabell. Svaret ska bli 2 men blir 1. Jag trodde jag var smart när jag valde att gruppera efter ett unikt fält, men det hjälpte tydligen inte.

Hur gör man?

mvh Jörgen :)

Medlem sedan dec. 200012 464 inlägg
#2

Vad vill du räkna?
Om du har med group by så får du ju antalet poster inom varje grupp (I och med att du grupperar på en unik kolumn så blir det alltid 1).

Egentligen så skall alla kolumner i select-listan, som inte ingår i en aggregatfunktion, vara med i group by. MySQL är lite udda i detta sammanhang. Det står att man kan få

unpredictable results

om man skriver så som du gjort.

Medlem sedan feb. 20012 412 inlägg
#3

Hej!

Jag vill göra 2 saker (helst med samma fråga)

  1. Välja ut den senaste medlemmen, vilket jag gör med LIMIT 1

  2. Räkna antal poster i tabellen, dvs antal medlemmar totalt.

Hur gör man det så att MySQL är nöjd?

mvh Jörgen :)

Medlem sedan dec. 200012 464 inlägg
#4

Går inte med 1 fråga i Mysql.

Du hade behövt skalära selectar

sql ="SELECT req_Username, AnvId, " & _
"(select COUNT(*) " & _
"FROM Profil) as members from profil " & _
"ORDER BY anvId DESC LIMIT 1"

Men det finns alltså inte stöd för detta. Du får nog ställa 2 frågor.

Borde du inte ha

order by AnvID desc

istället?

Medlem sedan feb. 20012 412 inlägg
#5

Hej!

Jo det har du rätt i!

Tack för hjälpen, kör med 2 frågor :(

mvh Jörgen :)

392 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
128 ms — deklarationer (db)
127 ms — hämta statistik (db)
135 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)