私は 'test'という名前の3つの列を持つ単一のMySQLテーブルを持っています。複数の出現を含むすべての行を選択してください
ID | playername | lastloginip
-----------------------------
1 | user 1 | 1
2 | user 2 | 2
3 | user 3 | 3
4 | user 4 | 4
5 | user 5 | 5
6 | user 6 | 1
7 | user 7 | 1
8 | user 8 | 2
今、私はlastloginipがテーブル内で複数回検出された行をselect ALL
、その後、それらの行の数を与えたいと思います。
この場合、ユーザ1,2,6,7,8のlastloginipが複数回存在するため、数字5 が返されます。
私はすでに
SELECT COUNT(*)
FROM (
SELECT *
FROM test
GROUP BY lastloginip
HAVING COUNT(*) > 1
) t
を使用してみました。しかし、それは私が正しく、このクエリを設定する方法を確認していない代わりに、5
の数2を返しました。インターネット上で私の調査結果のほとんどはSUM()
、その後、唯一の2行を示すか、代わりに5
ありがとう、私は今それを持っていると思います。あなたの最初の「誤解された」バージョンのクエリを、動作するものに変更しました。 SELECT SUM(occurrences)FROM( SELECT COUNT(ID)AS出現数 FROMテスト GROUP BY lastloginip HAVING COUNT(ID)> 1)t – Snowy007
私は何か愚かなことをしたかもしれないと感じています。うまくいけば、他の誰かが私の答えを見て、必要に応じて修正することができます。 – marnir