需要查询才能查找列记录的计数?

时间:2014-04-15 13:21:47

标签: sql sql-server

我有一张这样的表,

 ProductId     CategoryID     bIsPrimary
     1             5              1
     1             6              0
     1             7              0
     2             18             1
     2             19             1

我需要这样的输出,

 ProductID        PrimaryCategoryCount
     1                    1
     2                    2

基本上我需要找到每种产品的主要类别数量。

3 个答案:

答案 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子句在这里是不必要的。