我找到了另一个有类似问题的帖子,但由于某种原因,该查询对我不起作用。
我有一张这样的表:
id | 1 1 5 3 5
我需要使用SQL来回显最重复的数字
例如,那将输出:
id | 1 5 3 5
如果这是有道理的。
我将如何实现这一目标?
非常感谢
答案 0 :(得分:0)
只返回ID ID
SELECT DISTINCT id FROM myTable
ID |
---------------
1 |
5 |
3 |
请参阅DEMO
返回最重要的带有COUNT的重复ID
SELECT id, COUNT(id) AS Duplicates FROM test
GROUP BY id
ORDER BY Duplicates DESC
LIMIT 1;
ID | Duplicates
---------------
1 | 2
// without the LIMIT clause
ID | Duplicates
---------------
1 | 2
5 | 2
3 | 1
请参阅DEMO
或者,如您所见,可能有两个ID重复的次数相同。如果它们相同,你可以这样做,这将返回最高重复的ID:
SELECT id, COUNT(id) AS Duplicates
FROM test
GROUP BY id
HAVING COUNT(id) = (
SELECT COUNT(id) AS great
FROM test
GROUP BY id
ORDER BY great DESC
LIMIT 1
)
ID | Duplicates
---------------
1 | 2
5 | 2
请参阅DEMO
仅仅返回ID纯粹的ID
$results = // query
$results = array_unique($results);
答案 1 :(得分:0)
将一个组与一个计数一起使用,如下所示:
select * from t group by id order by count(id) desc
并添加限制子句以获得单个最重复的值:
select * from t group by id order by count(id) desc limit 1