Mysql 2在单个查询中按分组

Mysql 2在单个查询中按分组,mysql,sql,database,Mysql,Sql,Database,A包含许多值。 B仅包含2个值 我想得到的数据如下 tbl A | B 它应该很简单: a1 | count(b1) | count(b2) a2 | count(b1) | count(b2) .... an | count(b1) | count(b2) 希望我正确理解了你的问题 试图制造同样的问题。请参考以下查询 SQLFIDLE链接用于相同的 请提供样本数据和预期输出。A是studentName。B是我的代表。B可以是“是”或“否”。我想要每个A和计数(每个B)的记录。尽最大努力为定

A包含许多值。 B仅包含2个值

我想得到的数据如下

tbl
A | B

它应该很简单:

a1 | count(b1) | count(b2)
a2 | count(b1) | count(b2)
....
an | count(b1) | count(b2)

希望我正确理解了你的问题

试图制造同样的问题。请参考以下查询

SQLFIDLE链接用于相同的


请提供样本数据和预期输出。A是studentName。B是我的代表。B可以是“是”或“否”。我想要每个A和计数(每个B)的记录。尽最大努力为定义不清的问题提供体面的解决方案。@O.Jones谢谢
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
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;