我有一个这样的表:
id 2 3
1, 14406, 2189
2, 14428, 2191,
3, 14442, 2192,
4, 14441, 2192,
5, 14441, 2192,
我想知道是否可以进行计数,以便我可以知道第二列和第三列相同的字符串出现了多少次。我看到第一个字符串是唯一的,因此它出现了 1 次。与 2 相同。在第三个字符串中,2 列是唯一的,因此这意味着该行也是唯一的。但第四个和第五个字符串是相同的,我想显示它在我的表格中出现了两次。我怎么能算出来呢?我应该使用分组依据还是子查询之类的东西?
最佳答案
首先,您将按第 2 列和第 3 列分组,以便为每个不同的对获取一条记录。对于每一对,您都需要涉及所有 ID,因此请使用 GROUP_CONCAT 构建 ID 字符串。然后使用 HAVING 子句仅保留出现多次的对。
select col2, col3, group_concat(id) as ids
from mytable
group by col2, col3
having count(*) > 1;
col2 col3 ids 14441 2192 4,5
(这本质上是splash58的答案,所以你可以接受。我只是认为解释一下所涉及的步骤会很好。)
关于mysql - 如何从MYSQL中的一列中获取不同值的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32376484/