我有一张这样的表,
ProductId CategoryID bIsPrimary
1 5 1
1 6 0
1 7 0
2 18 1
2 19 1
我需要这样的输出,
ProductID PrimaryCategoryCount
1 1
2 2
基本上我需要找到每种产品的主要类别数量。
答案 0 :(得分:2)
SELECT ProductId, COUNT(*)
FROM SomeTable
WHERE bIsPrimary <> 0
GROUP BY ProductId
答案 1 :(得分:1)
SELECT
ProductId
,sum(case when bIsPrimary = 1 then 1 else 0 end) as PrimaryCategoryCount
from
Table
group by
ProductId
或
SELECT
ProductId
,count(CategoryId)
from
Table
where bIsPrimiary = 1
group by ProductId
两者都会为您提供相同的结果。选择一个更适合你或更快的。
答案 2 :(得分:0)
SELECT ProductId, COUNT(bIsPrimary)
FROM yourTable
GROUP BY ProductId
我就是这样做的。如果我没有弄错的话,WHERE子句在这里是不必要的。