SQL查询,计数和分组
时间:2020-03-05 18:37:58 来源:igfitidea点击:
如果我有这样的数据:
+---+----+ |Key|Name| +---+----+ |1 |Dan | +---+----+ |2 |Tom | +---+----+ |3 |Jon | +---+----+ |4 |Tom | +---+----+ |5 |Sam | +---+----+ |6 |Dan | +---+----+
SQL查询将带回" Name"重复两次或者两次以上的记录的SQL查询是什么?
所以我想要的结果是
+---+ |Tom| +---+ |Dan| +---+
解决方案
回答
再简单不过了...
Select Name, Count(Name) As Count From Table Group By Name Having Count(Name) > 1 Order By Count(Name) Desc
这也可以扩展为删除重复项:
Delete From Table Where Key In ( Select Max(Key) From Table Group By Name Having Count(Name) > 1)
回答
这也可以通过将表与其自身连接来实现,
SELECT DISTINCT t1.name FROM tbl t1 INNER JOIN tbl t2 ON t1.name = t2.name WHERE t1.key != t2.key;
回答
select name from table group by name having count(name) > 1