我有一些像这样的行数据......
ID ParentID IsCompleted
5 300 1
10 300 1
15 300 0
20 200 1
25 200 0
我想对此数据集进行查询并返回类似......
的内容ParentID Total TotalCompleted
300 3 2
200 2 1
我不知道如何问这个问题所以我很抱歉,如果它太容易了。我做了一些研究,并认为我可能需要一个相关的查询,但在阅读和玩一些查询我无法让它工作。一些方向将是非常有用的
谢谢!
**注意** IsCompleted列是一种位数据类型,因此SQL服务器将抛出“操作数数据类型位对于sum运算符无效”错误。
答案 0 :(得分:4)
将COUNT
和SUM
功能与GROUP BY
一起使用。
<强>查询强>
select [ParentID],
count(*) as [Total],
sum(cast([IsCompleted] as int)) as [TotalCompleted]
from [your_table_name]
group by [ParentID];
答案 1 :(得分:1)
只需使用GROUP BY
和聚合函数
SELECT ParentId,
count(*) total,
sum(iscompleted) totalCompleted
FROM yourtab
GROUP BY ParentId
编辑:
SELECT ParentId,
count(*) total,
sum(CASE WHEN iscompleted THEN 1 ELSE 0 END) totalCompleted
FROM yourtab
GROUP BY ParentId