webForumDet fria alternativet

Räkna poster med antal över 4

Databaser & SQL

4 svar · 240 visningar · startad av Melea

Medlem sedan juli 20033 147 inlägg
Frågan#1

Hejhej wF

Nu blev det lite rörig topic men ska förklara mer här... Såhär ser min Count sats ut:

select count(*) iclan, clan from lan_members where clan <> '' and access = 1 group by clan

Nu räknar den upp alla klaner i databasen men jag vill att den bara ska räkna de som har 5 eller fler poster i databasen. Den ska alltså se ut på ett ungefär såhär:

select count(*) iclan, clan from lan_members where clan <> '' and access = 1 [b]and antalclan > 4[/b] group by clan

Hur ser koden ut för att räkna antal poster och sedan göra en Count av det?

Tack på förhand

Medlem sedan dec. 200012 464 inlägg
#2
select count(*) iclan, clan 
from lan_members 
where clan <> '' and access = 1 
group by clan
having count(*) > 4
Medlem sedan juli 20033 147 inlägg
#3

Hm, gjorde dock ingen skillnad... Får fortfarande för många svar.

Tack för att du tar dig tid :)

Medlem sedan dec. 200012 464 inlägg
#4

Jaså, jag gjorde till och med en test

SQL>create table lan_members(member char(10), clan char,access int);
SQL>insert into lan_members values('a','x',1);
SQL>insert into lan_members values('b','x',1);
SQL>insert into lan_members values('c','x',1);
SQL>insert into lan_members values('d','x',1);
SQL>insert into lan_members values('e','x',1);
SQL>insert into lan_members values('f','x',1);
SQL>insert into lan_members values('g','y',1);
SQL>insert into lan_members values('h','y',1);
SQL>insert into lan_members values('i','y',1);
SQL>insert into lan_members values('j','z',1);
SQL>insert into lan_members values('k','z',1);
SQL>insert into lan_members values('l','z',1);
SQL>insert into lan_members values('m','z',1);
SQL>insert into lan_members values('n','z',1);
SQL>insert into lan_members values('o','z',1);
SQL>insert into lan_members values('p','å',1);
SQL>insert into lan_members values('q','ä',1);
SQL>insert into lan_members values('r','ä',1);
SQL>insert into lan_members values('s','ä',1);
SQL>insert into lan_members values('t','ä',1);
SQL>insert into lan_members values('u','ä',1);
SQL>select count(*) iclan, clan 
SQL&from lan_members 
SQL&where clan <> '' and access = 1 
SQL&group by clan
SQL&having count(*) > 4;
      ICLAN CLAN
=========== ====
          6 x
          6 z
          5 ä

                  3 rows found

Vad har jag missförstått?

Medlem sedan juli 20033 147 inlägg
#5

Du har förstått det alldeles korrekt. Konstigt nog funkar inte min kod. När jag skriver ut > 4 så skriver den ut 5 även om det bara finns 3 st. När jag skriver = 2 så skriver den ut 2 osv (= 3 skriver den ut 3)... Hur ologiskt det än låter.

Använder exakt den koden du gav mig :l

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