webForumDet fria alternativet

Problem med Count och Group by

Databaser & SQL

2 svar · 316 visningar · startad av Fireh

Medlem sedan jan. 2003173 inlägg
Frågan#1

Nu ger jag upp :(

I tabellen Tdata finns en massa poster som visar vilka olika grupper olika användare är med i. En användare kan vara med i flera grupper. Jag vill räkna antalet unika användare där Ok = Ok i Tdata. Dvs om någon är med i två grupper, så ska han bara räknas en gång.

Det går bra att göra en vanlig recordset som exemplet nedan:

SET rs=db.Execute("SELECT * FROM Tdata WHERE Ok='Ok' GROUP BY UserID")

Men om jag ska göra en count, så får jag bara värdet 1. Koden jag då kör är denna:

SET rs=db.Execute("SELECT Count(*) AS Antal FROM Tdata WHERE Ok='Ok' GROUP BY UserID")

Tar jag bort "GROUP BY UserID" så fungerar den (blir 374), men då räknar den antalet gånger som Ok=Ok, dvs två gånger om en användare är med i två grupper.

Så hur gör jag för att de bara ska räknas en gång?

Medlem sedan dec. 19995 874 inlägg
#2
select count(distinct userID) from Tdata where ok='ok'
Medlem sedan jan. 2003173 inlägg
#3

Tack så hemskt mycket!

247 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
116 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)