mysql - 如何从MYSQL中的一列中获取不同值的计数

标签 mysql

我有一个这样的表:

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/

相关文章:

php - 平均评级值计数

php - MYSQL,PHP 从数据库中选择显示损坏的图像

mysql - 无法更改 MySql 例程

mysql - 使用 CASE WHEN 在过程外部执行 INSERT

php - mysql php 中的内连接

mysql - 是否可以在数据库更改时自动更新图形?

mysql - 如何根据检查值或(全部)存储数据ID

php - 如何从表mysql中获取特定列的特定行的总和?

php - 错误: Data truncated for column 'lat'

mysql - 外键完整性约束违规 : 1452