2
Name Status
A Fail
B open
c fail
A Success
A open
A Success
我想輸出一樣,節目組數據由甲
Name S_open S_Success S_All
A 1 2 4
B 1 0 1
C 0 0 1
Name Status
A Fail
B open
c fail
A Success
A open
A Success
我想輸出一樣,節目組數據由甲
Name S_open S_Success S_All
A 1 2 4
B 1 0 1
C 0 0 1
嘗試這樣
SELECT Name,
SUM(CASE WHEN Status='open' THEN 1 END) AS S_open,
SUM(CASE WHEN Status='Success' THEN 1 END) AS S_Success,
SUM(1) AS S_All
FROM Table
GROUP BY Name;
你也可以試試這個;
SELECT
upper(name),
SUM(S_OPEN) S_open,
SUM(S_SUCCESS) S_Success,
count(*) S_All
FROM
(
select name,
CASE WHEN upper(status) = 'OPEN' THEN 1 ELSE 0 END S_OPEN,
CASE WHEN upper(status) = 'SUCCESS' THEN 1 ELSE 0 END S_SUCCESS
from TABLE
) t
GROUP BY upper(name) order by 1