正如标题所说,这是我能解释的最简单的方式。详细说明...
我首先需要找到被重复次数最多(mostDuplicated)的列c的值,然后SELECT * FROM t WHERE c=mostDuplicated
继续下去......
这是我的数据:
SELECT * FROM t
a, b, c
- - -
1, 1, 1
2, 2, 1
3, 3, 1
4, 4, 2
5, 5, 3
所以完全忽略 a 和 b 列中的值,只关注 c 列。我需要在 c 列(即 1)中找到重复次数最多的值,然后仅在 c=1 的位置选择这些记录。如果可能,我想在单个查询中执行此操作。
最佳答案
执行“分组依据”查询以计算c
的唯一值的数量,将其降序排列并仅选择顶行。然后使用输出作为子查询来选择具有特定 c
值的行:
SELECT * FROM t WHERE c = (SELECT c FROM t GROUP BY c ORDER BY COUNT(*) DESC LIMIT 1)
关于MySQL, SELECT * FROM t WHERE c={重复次数最多的条目},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8538185/