我有一个这样的表:
id 2 3
1, 14406, 2189
2, 14428, 2191,
3, 14442, 2192,
4, 14441, 2192,
5, 14441, 2192,
而且我想知道是否有可能获得计数,这样我才能知道第二列和第三列相同的字符串出现了多少次。我看到第一个字符串是唯一的,因此它出现了1次。与2相同。在第三字符串2列中是唯一的,因此这意味着该行也是唯一的。但是第4个和第5个字符串是相同的,我想显示它在表中出现了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的答案,因此您可以接受。我只是认为最好解释所涉及的步骤。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句