Mysql - 排除计数>值但显示所有行

标签 mysql group-by count having

我有一个名为 customer_numbers 的表,如下所示:

ID   customer      number

1    1             10001
2    2             10002
3    2             10003
4    3             10004
5    3             10005
6    3             10006
7    3             10007

我想要一个产生以下结果的查询。 IE。仅排除那些只有一个号码的客户。

ID   customer      number

2    2             10002
3    2             10003
4    3             10004
5    3             10005
6    3             10006
7    3             10007

我试过这样的查询:

SELECT ID,customer,number from customer_numbers GROUP BY number HAVING count(*) > 1

添加 GROUP BY 子句列出所有数字,但 count(*) 始终为 1。没有该子句意味着没有列出所有数字,只有一个结果。

正确的查询是什么?

最佳答案

您只需要按客户分组

select * from customer_numbers
where customer in(SELECT customer from customer_numbers GROUP BY customer HAVING count(*)>1)

关于Mysql - 排除计数>值但显示所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48346461/

相关文章:

php - MySQL 更改表在已存在的字段之前或之后添加字段

mysql - 在单个查询中进行分组、排序和计数

mysql - 为什么我不能在 WHERE 中使用我的列,而我可以在 GROUP BY 中使用?

c++ - 字数统计项目的多个哈希表

MySQL group by 不起作用

MySQL 排名 ID 与基于列的关系返回错误

mysql - 如何使用 node.js 将 csv 文件导入 mysql?

MySQL SELECT DISTINCT ORDER BY问题

r - 如何计算在收到阳性结果之前阴性观察的数量

r - 在 R 中按组有条件地计算两个日期时间列之间的行