嗨,我必须计算出b列有多少个结果,例如:
我创建了此查询来解释我的问题:
Declare @t as Table(a varchar(50), b varchar(50))
Insert into @t (a,b) values ('UNO', 'LOBO');
Insert into @t (a,b) values ('DOS', 'LOBO');
Insert into @t (a,b) values ('UNO', 'PERRO');
Insert into @t (a,b) values ('DOS', 'PERRO');
Insert into @t (a,b) values ('UNO', 'GATO');
Insert into @t (a,b) values ('UNO', 'POLLO');
Insert into @t (a,b) values ('UNO', 'PATO');
Insert into @t (a,b) values ('UNO', 'PATO');
Insert into @t (a,b) values ('UNO', 'PATO');
Insert into @t (a,b) values ('UNO', 'PATO');
select b,a from @t group by b,a
The grouped que results:
b a
------------ -----------------
GATO UNO
LOBO DOS
LOBO UNO
PATO UNO
PERRO DOS
PERRO UNO
POLLO UNO
所以,我想计算b中有多少个a,例如LOBO有两个结果,或者perro被分组后有两个结果。
答案 0 :(得分:0)
您要计算distinct
的{{1}}值,对吗?
然后仅a
:
group by b
请参见demo。
结果:
select b,count(distinct a) counter from @t group by b
如果您还想计算重复项,则:
b | counter
:---- | ------:
GATO | 1
LOBO | 2
PATO | 1
PERRO | 2
POLLO | 1