好的,我有一个名为'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
现在,我想select ALL
在表中多次找到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。
答案 0 :(得分:5)
首先COUNT()
,然后是SUM()
:
SELECT SUM(occurences)
FROM
(
SELECT COUNT(*) AS occurences
FROM test
GROUP BY lastloginip
HAVING COUNT(*)>1
) t
答案 1 :(得分:0)
尝试此查询。
SELECT SUM(loginip)
FROM(
SELECT
lastloginip,
COUNT(lastloginip)
as loginip
FROM test
GROUP BY lastloginip
HAVING COUNT(ID)>1
)t