sql - 通过使用两个表中的两个不同日期进行 SQL 组
问题描述
我有两张桌子正在处理。
select daydate
from Temp_Dates
results:
**daydate**
2019-01-01
2019-01-02
2019-01-03
2019-01-04
2019-01-05
2019-01-06
2019-01-07
2019-01-08
2019-01-09
2019-01-10
select Coverage_Effective_Date, Coverage_Expiration_Date, Certificate_Number
from Elig_dates
results:
*Coverage_Effective_Date Coverage_Expiration_Date Certificate_Number*
2018-12-31 2019-01-31 1LEL17-115487
2019-01-01 2019-01-31 1LEL17-115488
2019-01-01 2019-01-31 1LEL17-115494
2019-01-02 2019-01-31 1LEL17-115497
2019-01-03 2019-01-31 1LEL17-115500
2019-01-05 2019-01-31 18LEL18-121770
2019-01-05 2019-01-31 18LELL18-109689
2019-01-09 2019-01-31 ATR16-160410
2019-01-10 2019-01-31 ATR16-160410
2019-01-10 2019-01-31 18LCL18-117965
每次DayDate介于Coverage_Effective_Date和Coverage_Expiration_Date之间时,我想查看Certificate_Number的计数按DayDate分组
到目前为止,这是我的代码,
select DayDate, count(E.certificate_number) as Total
from Elig_dates E
where dayDate in
(
select DayDate
from Temp_dates
where DayDate between E.Coverage_Effective_Date and E.Coverage_Expiration_Date
)
group by DayDate
我要找的是这个
**daydate** **Total**
2019-01-01 3
2019-01-02 4
2019-01-03 5
2019-01-04 5
2019-01-05 7
2019-01-06 7
2019-01-07 7
2019-01-08 7
2019-01-09 8
2019-01-10 10
非常感谢您的帮助!
解决方案
根据您的情况加入表格,然后按日期分组并汇总:
select t.daydate, count(*) Total
from Temp_Dates t left join Elig_dates e
on t.daydate between Coverage_Effective_Date and Coverage_Expiration_Date
group by t.daydate
请参阅演示。
结果:
> daydate | Total
> :---------------------- | ----:
> 2019-01-01 00:00:00.000 | 3
> 2019-01-02 00:00:00.000 | 4
> 2019-01-03 00:00:00.000 | 5
> 2019-01-04 00:00:00.000 | 5
> 2019-01-05 00:00:00.000 | 7
> 2019-01-06 00:00:00.000 | 7
> 2019-01-07 00:00:00.000 | 7
> 2019-01-08 00:00:00.000 | 7
> 2019-01-09 00:00:00.000 | 8
> 2019-01-10 00:00:00.000 | 10
推荐阅读
- c# - 从复选框中选择多个项目并将现有 SQL Server 查询添加到 ASP.NET 中的 if 语句中
- python - 无法使交互式 matplotlib 绘图工作(不在 Jupyter 模式下时)
- c++ - 为什么 std::map 没有 FindOrNull 方法
- c++ - Qt Creator + CMake 不解析文件
- c# - 是否可以在调试时声明 C# 方法/函数?
- python - 使用 pandas 压缩一个数据帧,使用一个数据帧中的值填充一个新的数据帧
- string - 优化速度和字符串的问题
- bash - 使用 sed 追加带有 alt 字符的行
- ajax - Ajaxinate Endless scolling 已停止产品快速查看工作
- jupyter - 如何在通过 mybinder.org 构建时将 jupyter 实验室文档标记为受信任,以便自动运行所有代码单元