sql - 获取自某个月以来未计费的用户数
问题描述
我很确定标题写得很糟糕,但我不知道如何措辞,也不知道我的问题。我们遇到了一个问题,似乎一些用户几个月都没有收到账单。不是全部,只是一些,我们正试图弄清楚有多少。例如,有一个当前活跃的用户大约 3 个月没有计费。还有一个人已经 5 个多月没有收到账单了。还有一些他们上个月没有收到账单,等等......
我一直在环顾四周,因为我很确定我的谷歌搜索不正确,所以我没有找到解决方案。在尝试了这么多之后,我不断回到的查询是:
SELECT COUNT(DISTINCT u.USER_ID) from SUBSCRIPTION AS s
JOIN USERS as U
ON s.USER_ID = u.USER_ID
WHERE s.BILLING_DATE <= DATEADD(month, -1, GETDATE()) AND u.STATUS = 'ACTIVE'
上面的查询,我相信得到的数字比我们应该得到的要大得多。
解决方案
这里有一些东西可以尝试。
子查询说明:
查找上个月左右已计费的用户。
外部查询表达式说明:
查找不在上述已计费用户列表中的活跃用户数。
SELECT COUNT(*)
FROM users
WHERE STATUS = 'ACTIVE'
AND user_id NOT IN (
SELECT user_id FROM subscription
WHERE BILLING_DATE > DATEADD(month, -1, GETDATE())
)
;
根据需要调整dateadd
逻辑。
推荐阅读
- reactjs - 如何在 react-native 中访问导航对象
- c# - 如何更改 ac# 控制台应用程序的入口点?
- python - 为什么我无法用 Keras 预测 y=x**4?(y=x**3 作品)
- watchdog - JTAG 调试器如何停止看门狗定时器
- swift - Swift,无法将 Firebase 存储 URL 获取到数据库
- wordpress - 在 Elementor 中使用 Accordion 关闭内容很困难
- java - 如何使用 StanfordCoreNLP 添加用户字典
- android - Android Studio:生成签名 apk 以更新现有应用程序时出现“未安装应用程序”错误
- android - 数据库存储API和DOM存储API有什么区别
- php - 如何使用 DOMDocument PHP 从网站获取类值