如何在一个查询中过滤重复项和分组依据?

时间:2019-09-08 03:33:43

标签: mysql sql

针对以下数据进行报表查询。期望的返回记录是200,因为它有两个不同的名称。 ID 100应该被过滤掉,因为它是重复的记录。在这种情况下,我们是否有一个查询来实现?

Class  name
100    john
100    john
200    peter
200    mary
300    alice

谢谢。

3 个答案:

答案 0 :(得分:1)

此查询将为您提供所需的结果,它将查找具有至少2个不同名称的任何Class

SELECT Class
FROM table1
GROUP BY Class
HAVING COUNT(DISTINCT name) > 1

输出

Class
200

Demo on dbfiddle

答案 1 :(得分:0)

您可以在下面的查询中尝试-

select class from
tablename group by class having count(distinc name)=2

答案 2 :(得分:-2)

尝试一下:

SELECT class FROM table1 按类别分组 拥有COUNT(地区名称)> 1;