通过使用,WHERE type ="FAC" 您只能将自己限制在类型等于 FAC 的主体值上。顺便说一下,你还有一个额外的 AND ,但我猜它应该是一个错字。
您需要使用 case 条件。
考虑以下数据,
create table tb_list_data (
type varchar(10),
body varchar(10) );
insert into tb_list_data values
('FAC','Hand'),('FAC','Head'),('MTC','Feet'),('MTC','Finger'),
('FAC','Hand'),('FAC','Head'),('FAC','Legs');
select body,
count(case when type = 'FAC' then 1 end) as cnt
from tb_list_data
group by body
order by cnt asc ;
或者写法不同
select body,
SUM(type = 'FAC') as cnt
from tb_list_data
group by body
order by cnt asc ;
通过使用,
WHERE type ="FAC"
您只能将自己限制在类型等于 FAC 的主体值上。顺便说一下,你还有一个额外的 AND ,但我猜它应该是一个错字。您需要使用 case 条件。
考虑以下数据,
或者写法不同
在这两种情况下,结果都是
参见示例