いくつかのレコードと列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フィルターからser1(最小の出現数)-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);