好的,我有一个名为“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的行,然后给出这些行的计数。
在这种情况下,它应该返回数字 5 因为用户 1、2、6、7 和 8 具有多次找到的 laSTLoginip。
我已经尝试过使用
SELECT COUNT(*)
FROM (
SELECT *
FROM test
GROUP BY lastloginip
HAVING COUNT(*) > 1
) t
但是返回的是数字 2 而不是 5。
我不确定如何正确设置此查询。我在互联网上的大部分发现都只显示 2 行或给出数字 2 而不是 5。
最佳答案
首先 COUNT()
,然后是 SUM()
:
SELECT SUM(occurences)
FROM
(
SELECT COUNT(*) AS occurences
FROM test
GROUP BY lastloginip
HAVING COUNT(*)>1
) t
关于mysql - 选择多次出现的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8720507/