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

Databaser & SQL

3 svar · 596 visningar · startad av ifransson

Medlem sedan jan. 20082 inlägg
Trådstart#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...

274 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
147 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)