让我们考虑下表。
| NAME | SECTION |
|---|---|
| abc | CS1 |
| bcd | CS2 |
| abc | CS1 |
在上表中, 我们可以使用以下查询找到重复的行。
SELECT name, section FROM tbl GROUP BY name, section HAVING COUNT(*) > 1 另一个例子:
给定一个名为PERSON的表, 任务是编写一个SQL查询以查找表中所有重复的名称。
范例:
+----+---------+ | Id | NAME | +----+---------+ | 1 | Geeks | | 2 | for | | 3 | Geeks | +----+---------+ Output : +---------+ | NAME | +---------+ | Geeks | +---------+ 简单的方法是制作一个临时表, 其中包含表中所有名称的计数。
重复的NAME存在多次, 因此要计算每个NAME存在的次数, 我们可以使用以下代码:
select NAME, count(NAME) as num from Person group by NAME; | NAME | num | |---------|-----| | Geeks | 2 | | for | 1 | 这是一个临时表, 我们可以在其上运行以下代码来获取重复的NAME。
select NAME from ( select NAME, count(NAME) as num from Person group by NAME ) as statistic where num > 1; 的最好的方法用于通过…分组和拥有健康)状况。它比以前更有效, 更快。
MySql的:
select NAME from Person group by NAME having count(NAME) > 1; 如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。
srcmini
评论前必须登录!
注册