这是我的第一篇文章,所以请温柔:)
我有几个疑问:
SELECT COUNT(DISTINCT(h.USERID))
FROM MHGROUP.USERHISTORY h with (NOLOCK)
JOIN MHGROUP.DOCUSERS u with (NOLOCK) on h.USERID = u.USERID
where h.CUSTOM2 = 'Work Web'
and h.ACTIONDATETIME >= GETUTCDATE()-30
and u.LOGIN = 'y'
Run Code Online (Sandbox Code Playgroud)
SELECT COUNT(DISTINCT(h.USERID))
FROM MHGROUP.USERHISTORY h with (NOLOCK)
JOIN MHGROUP.DOCUSERS u with (NOLOCK) on h.USERID = u.USERID
where h.CUSTOM2 = 'Work Web'
and h.ACTIONDATETIME >= GETUTCDATE()-30
and u.LOGIN = 'y'
Run Code Online (Sandbox Code Playgroud)
现在我被要求提取去年的数据,所以我想我会使用 case 语句,但无法弄清楚如何将不同的用户部分合并到 sum case 语句中......所以我得到了巨大的数字, 明显地
SELECT COUNT(DISTINCT(h.USERID))
FROM MHGROUP.USERHISTORY h with (NOLOCK)
JOIN MHGROUP.DOCUSERS u with (NOLOCK) on h.USERID = u.USERID
where h.CUSTOM2 = 'OUTLOOK'
and h.ACTIONDATETIME >= GETUTCDATE()-30
and u.LOGIN = 'y'
Run Code Online (Sandbox Code Playgroud)
返回的是以下内容,这是一个总和。我正在寻找每种方式的不同计数。
感谢您的帮助
count(column)不计算null值,因此您可以count()与返回h.USERIDor的 case 语句一起使用null。
, COUNT(DISTINCT CASE WHEN h.CUSTOM2 = 'Work Web' THEN h.USERID ELSE NULL END) UserCountWorkWeb
, COUNT(DISTINCT CASE WHEN h.CUSTOM2 = 'OUTLOOK' THEN h.USERID ELSE NULL END) UserCountOutlook
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1740 次 |
| 最近记录: |