tbl
A | B
A包含許多值。 B只包含2個值。2在單個查詢中的分組
我想要得到的數據作爲
a1 | count(b1) | count(b2)
a2 | count(b1) | count(b2)
....
an | count(b1) | count(b2)
tbl
A | B
A包含許多值。 B只包含2個值。2在單個查詢中的分組
我想要得到的數據作爲
a1 | count(b1) | count(b2)
a2 | count(b1) | count(b2)
....
an | count(b1) | count(b2)
它應該是這麼簡單:
select
a,
count(case when b = b1 then 1 else null end) as b1,
count(case when b = b2 then 1 else null end) as b2
from tbl
group by a
希望能,我的理解正確的問題,
試圖創建相同問題。請參閱下面的查詢。
Sqlfiddle鏈接,同樣http://sqlfiddle.com/#!9/b557543/4/0
CREATE TABLE SO_TEST(
COL1 VARCHAR(100),
COL2 VARCHAR(100)
);
INSERT INTO SO_TEST VALUES('V1','Y');
INSERT INTO SO_TEST VALUES('V1','N');
INSERT INTO SO_TEST VALUES('V2','Y');
INSERT INTO SO_TEST VALUES('V2','N');
INSERT INTO SO_TEST VALUES('V3','Y');
INSERT INTO SO_TEST VALUES('V4','Y');
select col1 ,
count(case when col2='Y' then 1 end) y_cnt,
count(case when col2='N' then 1 end) n_cnt
from SO_TEST
group by col1;
努力爲相當不明確的問題提供體面的解決方案。 –
@ O.Jones謝謝 – Tajinder
請提供樣本數據和預期的輸出。 – GurV
A是studentName。 B是isPresent。 B可能是或不是。我需要每個A的記錄並計數(每個B)。 –