Group-By
SQL查詢獲取使用者,統計最小記錄數
我有一張包含一些記錄和一列的表格
LAST_EDIT_USER
。如果我想為每個使用者選擇出現次數的所有使用者,我會這樣做SELECT LAST_EDIT_USER,COUNT(LAST_EDIT_USER) FROM EDITED_ELEMENTS_TABLE GROUP BY LAST_EDIT_USER ORDER BY COUNT(LAST_EDIT_USER) ASC;
這將返回類似
NULL 0 user1 5 admin 7 USER2 11
如何從 SQL 過濾器中獲取user1(出現次數最少)- NULL 除外?稍後編輯:或出現次數最少的使用者列表
添加一個
WHERE
子句來過濾last_edit_user
為空的行。然後圍繞它進行另一個查詢,以獲得最小計數。將其用作HAVING
子句中的子查詢,以僅獲取計數等於最小值的子查詢。SELECT last_edit_user, count(last_edit_user) FROM edited_elements_table WHERE last_edit_user IS NOT NULL GROUP BY last_edit_user HAVING count(last_edit_user) = (SELECT min(c) FROM (SELECT count(last_edit_user) c FROM edited_elements_table WHERE last_edit_user IS NOT NULL GROUP BY last_edit_user) x);