webForumDet fria alternativet

Förenkla count

8 svar · 351 visningar · startad av Melea

MeleaMedlem sedan juli 20033 147 inlägg
#1

Hejsan!

Får inte riktigt ihop det med min count, såhär ser det ut nu

SELECT
(SELECT count(id)
FROM members WHERE status = 'Online') AS iCountOnline,
(SELECT count(id)
FROM members) AS iCount,
(SELECT count(id)
FROM members WHERE age >= 20) AS iCountAge20o,
(SELECT count(id)
FROM members WHERE age < 20 AND age > 0) AS iCountAge20u,
(SELECT count(id)
FROM members WHERE race = 'Protoss') AS iCountRaceP,
(SELECT count(id)
FROM members WHERE race = 'Zerg') AS iCountRaceZ,
(SELECT count(id)
FROM members WHERE race = 'Terran') AS iCountRaceT,
(SELECT count(id)
FROM members WHERE race = 'Random') AS iCountRaceR,
(SELECT count(id)
FROM members WHERE bild = 1) AS iCountPic,
(SELECT count(id)
FROM members WHERE gender = 'Male') AS iCountSexM,
(SELECT count(id)
FROM members WHERE gender = 'Female') AS iCountSexF,
(SELECT count(id)
FROM members WHERE gender = 'Male') AS iCountSexM
FROM members

Vad är det jag har missat?

Tack på förhand!

HelmertzMedlem sedan maj 2005353 inlägg
#2

Varför har du med detta två gånger?

(SELECT count(id)
FROM members WHERE gender = 'Male') AS iCountSexM
MeleaMedlem sedan juli 20033 147 inlägg
#3

Helmertz skrev:

Varför har du med detta två gånger?

(SELECT count(id)
FROM members WHERE gender = 'Male') AS iCountSexM

Oj, bara en miss, copy/paste. :)
Ändrat i källkoden, funkar dock fortfarande inte.

HelmertzMedlem sedan maj 2005353 inlägg
#4

Melea skrev:

Helmertz skrev:

Varför har du med detta två gånger?

(SELECT count(id)
FROM members WHERE gender = 'Male') AS iCountSexM

Oj, bara en miss, copy/paste. :)
Ändrat i källkoden, funkar dock fortfarande inte.

Tänkte det med, men lika bra att anmärka :)
frågan är för komplicerad för mig men lycka till och hälsa gärna Mazor från Polka :e

StreamsideMedlem sedan dec. 20043 inlägg
#5

Det ser rätt ut. Den sista "from members" behövs inte, det är det enda jag ser som är "fel".

Vad får du för felmeddelande?

Stream

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Den sista "from members" behövs inte

Tja, det beror på DBMS. Enligt standard så kan man inte utelämna from men en del DBMS tillåter men andra ger fel i så fall.

SELECT sum(case when status = 'Online' then 1 else 0 end) as iCountOnline,
       count(*) AS iCount,
sum(case when age >= 20 ' then 1 else 0 end) as iCountAge20,
sum(case when age between 1 and 19 then 1 else 0 end) iCountAge20o,
...

FROM members

torde vara något effektivare.

Att lagra age är inte så bra, bättre med startdatum.

MeleaMedlem sedan juli 20033 147 inlägg
#7

Tack så väldans mycket LarsG! Rätt som vanligt! :h :)

Helmertz skrev:

frågan är för komplicerad för mig men lycka till och hälsa gärna Mazor från Polka :e

Ska bli! :)

HelmertzMedlem sedan maj 2005353 inlägg
#8

Melea skrev:

Ska bli! :)

Tack, Mellow - var det va? ;)

MeleaMedlem sedan juli 20033 147 inlägg
#9

Jajamen! :h

131 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)