Nižšie uvedenú tabuľku:
Kde Val
stĺpec má 3 odlišné hodnoty a, b & c.
ID Val
1 a
1 a
1 b
2 b
2 c
2 c
3 c
Chcem získať počet jedinečných ID a počet ids pre príslušné Val
(t.j. a, b & c).
Používam tento dotaz, ale pomáha mi identifikovať počet pre jeden Val
hodnoty.
SELECT ID,COUNT(*)
FROM table1
WHERE Val="c" GROUP BY ID;
Požadovaný výstup:
ID count a b c
1 3 2 1 0
2 3 0 1 2
3 1 0 0 1
odpovede:
1 pre odpoveď č. 1Skupinu môžete použiť a sumarizovať počet, keď sa val rovná a, b alebo c. Pozri nižšie:
select id,
count(*) as `count`,
sum(case when val = "a" then 1 else 0 end) as a,
sum(case when val = "b" then 1 else 0 end) as b,
sum(case when val = "c" then 1 else 0 end) as c
from yourTable
group by id;
1 pre odpoveď č. 2
Stačí použiť podmienenú agregáciu:
select id, count(*), sum(val = "a") as a, sum(val = "b") as b, sum(val = "c") as c
from table1
group by id;