让我们考虑下表。
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;
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。
评论前必须登录!
注册