Mysql - 排除count的位置>值,但显示所有行

时间:2018-01-19 17:26:46

标签: 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

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

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.没有子句意味着所有数字都没有列出,只有一个结果。

什么是正确的查询?

1 个答案:

答案 0 :(得分:1)

您需要按customer

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