sql - SQL 中可能的枢轴
问题描述
我正在尝试从数据库中获取数据以获取 60 天和 90 天未使用的应用程序的数量。我已经尝试过以下方法:
SELECT
Uname AS [User ID],
AppName As [Application],
COUNT(*) AS [Unused App for 60 Days]
FROM APPTABLE
WHERE LAST_USE<getutcdate()-60
GROUP BY Uname, AppNameNow
我也想在 90 天内做同样的事情,但在同一个查询中。我很难做到。
你能帮我理解怎么做吗?感谢您的回复。
解决方案
使用条件聚合。我建议使用dateadd()
明确说明逻辑的意图:
SELECT Uname AS [User ID], AppName As [Application],
SUM(CASE WHEN LAST_USE < DATEADD(DAY, -60, getutcdate()) THEN 1 ELSE 0 END) as unused_60,
SUM(CASE WHEN LAST_USE < DATEADD(DAY, -90, getutcdate()) THEN 1 ELSE 0 END) as unused_90
FROM APPTABLE
WHERE LAST_USE < DATEADD(DAY, -60, getutcdate())
GROUP BY Uname, AppNameNow
请注意,该WHERE
子句仍在过滤日期。但是您需要注意WHERE
与 中的时间范围一致SELECT
。
推荐阅读
- unity3d - Unity OpenXR 从 VR 控制器读取触发器和手柄数据
- amazon-web-services - AWS:将日志从 Amazon CloudWatch 导出到 Amazon Redshift
- debugging - 如何跟踪堆栈以消除 MathCAD 中的错误?
- python - Pyinstaller 中的多个隐藏导入
- python - 如何合并熊猫数据框的行
- leaflet - 传单标记未正确检测触摸位置
- python - 在python中通过子字符串匹配两个数据帧
- python - 如何在 Python Tensorflow-Keras 中腌制弱引用?
- java - ASM ClassReader 无法解析类文件 [class java.lang.Object],可能是由于尚不支持新的 Java 类文件版本
- javascript - json 文件到图表