sql - SQL 根据同一个 WHERE 子句选择多个计数
问题描述
我的表中有这样的数据:
Number Date
18-000 2018-01-05
18-001 2018-01-08
.......
Number Date
19-350 2019-01-22
19-351 2019-01-22
19-352 2019-01-22
........
Number Date
20-649 2020-01-24
20-650 2020-01-27
所以每个数字前面的2位数字表示年份。我希望能够计算所有行有多少以 18、19 和 20(分隔)开头。我做了 18 年,它是:
SELECT COUNT(Number) totalSUM
FROM my_table
where Number like N'18-%'
但是我如何才能在一年中用 totalSUM 返回 3 行?
解决方案
您可以简单地取列的左侧 2 个字符Number
并按以下方式分组:
SELECT LEFT(Number, 2) AS year,
COUNT(Number) AS totalSUM
FROM my_table
GROUP BY LEFT(Number, 2)
样本数据的输出:
year totalSUM
18 2
19 3
20 2