sql - 如何同时查询多个范围内的数据及其计数
问题描述
我有一张如下表,
ID | 数字 | 日期 |
---|---|---|
1 | 23 | 2020-01-01 |
2 | 12 | 2020-03-02 |
3 | 23 | 2020-09-02 |
4 | 11 | 2019-03-04 |
5 | 12 | 2019-03-23 |
6 | 23 | 2019-04-12 |
我想知道的是每个数字每年出现多少次,例如,
数字 | 2019 | 2020 |
---|---|---|
23 | 1 | 2 |
12 | 1 | 1 |
11 | 1 | 0 |
我有点卡住了..尝试使用左连接或仅选择一次,但仍然无法弄清楚如何制作,请帮助谢谢!
解决方案
SELECT C.NUMBER,
SUM
(
CASE
WHEN C.DATE BETWEEN '20190101'AND '20191231'
THEN 1 ELSE NULL
END
) AS A_2019,
SUM
(
CASE
WHEN C.DATE BETWEEN '20200101'AND '20201231'
THEN 1 ELSE NULL
END
) AS A_2020
FROM I_have_a_table_like_below AS C
GROUP BY C.NUMBER
推荐阅读
- python - 如何使用工人初始化时使用的变量启动芹菜工人
- python - 删除熊猫中的注释行
- c# - 将数组添加到 NameValueCollection
- javascript - 如何在 setInterval 循环中按 1 计数?
- bash - 如何在 BASH 中对一行中的 ROW 进行排序
- kubernetes - 公开 Digital Ocean 的托管 Kubernetes 集群
- javascript - 从 Javascript 中的 XPATH 获取数组中的值
- r - 通过 index() 将 xts 和列表合并在一起
- apache-spark - 是否有用于说明哪些作业已排队或正在运行的 spark 的 shell 命令?
- c# - 一旦字符在 y 上变为 0,如何停止字符旋转?