sql - 查找结束日期和开始日期在同一个月的订阅者数量
问题描述
当终止原因连续 12 个月为“xxx”时,我想获取在同一个月终止并重新注册的订阅者的数量。
在上面的示例中,订阅者 '1245' 已因 'xxx' 原因被终止,但在同一个月再次重新注册。我想计算过去 n 个月内这种情况每月发生多少次。
我尝试使用下面的代码来获取 PersonID,但在一个月内无法获得计数。
SELECT DISTINCT PersonID FROM Membership A
INNER JOIN (SELECT StartYrMo FROM Membership) B
ON A.EndYrMo = B.StartYrMo
WHERE A.TermReason = 'xxx'
ORDER BY PersonID
编辑还有更多。我想要所有连续至少 6 个月这样做的 PersonId。含义:人“A”在 201901 年因“xxx”原因被终止。“A”在 201902 年至 201908 年因同样的“xxx”原因再次终止,至少 6 个月。我想要所有这样做的人的身份证。
解决方案
要获得重新订阅的人:
select m2.PersonID, m2.StartMonth as ResubscriptionMonth
from Membership m1 inner join Membership m2
on m1.PersonID = m2.PersonID
where m1.TermReason = 'xxx' and m1.EndMonth = m2.StartMonth
按月获取数字:
select Resubscibtions.ResubscriptionMonth, Count(*)
from (
select m2.PersonID, m2.StartMonth as ResubscriptionMonth
from Membership m1 inner join Membership m2
on m1.PersonID = m2.PersonID
where m1.TermReason = 'xxx' and m1.EndMonth = m2.StartMonth) as Resubscibtions
group by Resubscibtions.ResubscriptionMonth
推荐阅读
- php - 为什么我的其他输入值不会插入到我的数据库中?
- r - 如何在R中提取多词?
- javascript - Redux State 组件不变
- https - lighttpd 从自定义 HTTP 端口 81 重定向到 HTTPS 端口 443
- html - 具有透明末端的边界渐变
- macos - 系统调用常量 syscall.ENONET 在 Go 中未定义
- google-tag-manager - 将 GCLID 参数转换为 Squarespace 隐藏字段
- flutter - 如何在颤动中剪辑可变大小的小部件?
- javascript - .outerHTML 中不存在命名空间属性
- python - 如何创建多个标签和条目小部件,并在 Tkinter 中使用循环从中获取数据