【发布时间】:2020-12-23 11:48:33
【问题描述】:
我有一张和这张类似的桌子:
| id | store | BOMdate |
| 1 | A | 01/10/2018 |
| 1 | B | 01/10/2018 |
| 1 | C | 01/10/2018 |
|... | ... | ... |
| 1 | A | 01/11/2018 |
| 1 | C | 01/11/2018 |
| 1 | D | 01/11/2018 |
|... | ... | ... |
| 1 | B | 01/12/2018 |
| 1 | C | 01/12/2018 |
| 1 | E | 01/12/2018 |
它包含在 BOM(月初)处于活动状态的商店。
如何查询它以获取当月新开的商店数量 - 上个月不活跃的商店数量?
输出应该是这样的:
| BOMdate | #newstores |
| 01/10/2018 | 3 | * no stores on previous month
| 01/11/2018 | 1 | * D is the only new active store
| 01/12/2018 | 2 | * store B was not active on November, E is new
我现在如何计算每个商店第一次处于活动状态的时间(嵌套选择,获取 MIN(BOMdate) 然后计数)。但我不知道如何检查每个月与上个月的对比。
我使用 SQL Server,但如果有其他平台的差异,我感兴趣。
谢谢
【问题讨论】:
标签: sql sql-server subquery window-functions gaps-and-islands