SQL Query对每个category_id执行重复的item_id。为此,查询将是
Select item_id, category_id, COUNT(*)
from table
group by category_id, item_id
having count(*)>1
但是如何更改代码以仅过滤那些在重复计数中至少有一个A类的代码。
答案 0 :(得分:1)
您也可以计算HAVING
子句中的“A”:
Select item_id, category_id, COUNT(*)
from table
group by category_id, item_id
having count(*) > 1 and sum(case when type = 'A' then 1 else 0 end) > 0;
根据您的样本数据,您可以将其缩短为:
Select item_id, category_id, COUNT(*)
from table
group by category_id, item_id
having count(*) > 1 and min(type)= 'A' ;
但这取决于您使用的实际名称。