[英]SQL count of distinct records against multiple criteria
我在SQL SERVER“用法”中有一個表,該表由4列組成
userID, appid, licenseid, dateUsed
現在,我需要查詢該表,以便可以找到在一個時間范圍內有多少用戶使用了許可的應用程序。 請記住,即使用戶1在1月1日和2月1日使用了該應用,他們也只會在結果中計為1。 即在時間范圍內的唯一用戶。
所以查詢
where dateUsed > @from AND dateUsed < @dateTo
我想回來的是一個像這樣的行表
,appid,licenseid
有誰知道如何? 我一直在把count作為子查詢,然后試圖對結果求和,但還沒有成功。
剛剛對此進行了測試,並提供了所需的結果:
SELECT appid, licenseid, COUNT(DISTINCT userID)
FROM usage
WHERE dateUsed BETWEEN @from AND @dateTo
GROUP BY appid, licenseid
這樣的事情應該起作用:
SELECT appid, licenseid, COUNT(DISTINCT userid) as DistictUsers
FROM yourTable
WHERE dateUsed BETWEEN @from AND @dateTo
GROUP BY appid, licenseid
只需復制,粘貼並運行即可查看它是否如您所願:
SELECT appId, licenseId, COUNT(userId)
FROM usage
WHERE dateUsed > @from AND dateUsed < @dateTo
GROUP BY appId, licenseId
您尚未在此處發布查詢。 建議您使用PARTITION BY為每個許可證ID生成唯一的行數。 您可以使用每個單獨的許可證針對用戶數量創建子查詢。 SELECT .... FROM此子查詢,並使用HAVING子句過濾您的首選日期/用戶。 也許不是最好的解釋。 請發布示例查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.