webForumDet fria alternativet

COUNT ... GROUP BY (Antal ... av totalt ...)

Databaser & SQL

3 svar · 580 visningar · startad av ifransson

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

Jag kör med en äldre MySQL (3.23.58) som ej har stöd för vyer etc.
Det borde ändå finnas något (enkelt) sätt att räkna ut "antal Ok av totalt" mha GROUP BY!?
T ex från följande indata:

Datum      Namn  Resultat
-------------------------
2007-01-01 Kalle Ok
2007-01-01 Pelle Ok
2007-01-03 Kalle Fel
2007-01-03 Pelle Ok
2007-02-01 Kalle Ok

-> Så önskas följande:

Namn   Ok  Totalt
-----------------
Kalle  2   3
Pelle  2   2
Medlem sedan dec. 200012 464 inlägg
#2
select namn, sum(if(Resultat='Ok',1,0)) as Ok,count(*) as Totalt
   from t
  group by namn
Medlem sedan jan. 20082 inlägg
#3

Tack, för ett super-snabbt svar och som fungerar perfekt!

(Kan man räkna om det i procent oxå? ;D )

Medlem sedan nov. 20051 317 inlägg
#4

Om du har 223st OK av 899st totalt blir det ju så här:

223 / 899 = 0,248 * 100 = 24,8%

Så av 899st är 24,8% "OK"!

:) Om det nu var det du undrade...

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