统计各月对应连续3个月有交易的门店数(附SQL查询及验证)
需求:统计每个月份对应的存在连续3个月交易记录的门店数量
交易数据表(transaction_data)样本数据
| 月份 | 门店ID |
|---|---|
| 2023-01 | A |
| 2023-02 | A |
| 2023-03 | A |
| 2023-03 | B |
| 2023-04 | B |
| 2023-05 | A |
| 2023-05 | B |
预期结果
| 月份 | 统计数 |
|---|---|
| 2023-01 | - |
| 2023-02 | - |
| 2023-03 | 1 |
| 2023-04 | 0 |
| 2023-05 | 1 |
结果说明
2023-03月统计数为1,因门店A在2023-01、02、03月均有交易;2023-05月统计数为1,因门店B在2023-03、04、05月均有交易。
本人编写的SQL查询语句
SELECT 月份, COUNT(DISTINCT 门店ID) AS 连续3个月交易门店数 FROM( SELECT 月份, 门店ID, COUNT(*) OVER (PARTITION BY 门店ID ORDER BY 月份 ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS 连续月数统计 FROM transaction_data ) WHERE 连续月数统计=3 GROUP BY 月份 ORDER BY 月份
内容的提问来源于stack exchange,提问作者Darwin
相关产品推荐
相关产品推荐

