我有一個查詢,我想返回已登錄月份而不在下個月重複記錄的用戶數。非重複月度SQL
如果用戶已經登錄四月和五月,它只會顯示四月的一個記錄。這是我迄今爲止所擁有的。
SELECT DISTINCT (a.userid), EXTRACT(MONTH FROM a.loginTime) as month
FROM login_audit a LEFT JOIN user u on u.userid = a.userid
WHERE a.loginTime <= '2012-12-31 11:59:59'
AND a.loginTime >= '2012-01-01 00:00:00'
GROUP BY month
到目前爲止記錄返回
userid month
1 1
2 1
1 2
3 2
在這種情況下,用戶1出來爲1月和Februray。我希望它能省略那條記錄。要麼就是要積累。像這樣:
要麼
userid month
1 1
2 1
3 2
或者
userid month
1 1
2 1
1 2
2 2
3 2
我希望這是有道理的。如果您需要進一步澄清,請問任何問題。非常感謝!
嘗試使用'GROUP BY a.userid'。 – fedorqui
如果用戶有四月,五月和六月,您只想顯示四月?如果他還有十月和十一月,你是否想同時展示四月和十月? – fthiella
嗨@fthiella是的,這是主意。如果用戶已登錄一年,則只需顯示一次。 –