如何通过去重或分组操作实现SQL Server数据统计需求?
解决SQL Server分组统计需求
嘿,这个需求用SQL的分组聚合就能完美搞定,属于很基础的操作,我给你详细说下:
你需要用GROUP BY子句把相同Name的行归为一组,再配合COUNT()聚合函数统计每组的行数,直接就能得到你想要的结果。对应的SQL语句如下:
SELECT Name, COUNT(*) AS count FROM Table1 GROUP BY Name;
语句拆解:
GROUP BY Name:将表中所有Name字段值相同的记录划分为同一个分组COUNT(*):计算每个分组内的记录总数,也就是该Name出现的次数AS count:给统计结果列设置别名,和你期望的输出列名保持一致
执行这条语句后,返回的结果就是:
| count |
|---|
| 2 |
| 1 |
如果你的表中Name字段可能存在NULL值,不想把这些空值统计进去的话,可以加上过滤条件:
SELECT Name, COUNT(*) AS count FROM Table1 WHERE Name IS NOT NULL GROUP BY Name;
内容的提问来源于stack exchange,提问作者Davood




