大家好,我是小魔龙,Unity3D软件工程师,VR、AR,虚拟仿真方向,不定时更新软件开发技巧,生活感悟,觉得有用记得一键三连哦。
一、题目
1、算法题目
“编写SQL查询,查找表中所有重复的电子邮箱。”
2、题目描述
编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。
说明:所有电子邮箱都是小写字母。
示例 1: 输入: +----+---------+ | Id | Email | +----+---------+ | 1 | a@b.com | | 2 | c@d.com | | 3 | a@b.com | +----+---------+ 输出: +---------+ | Email | +---------+ | a@b.com | +---------+
示例 2:
二、解题
1、思路分析
题意要求找出表中重复的电子邮箱。
要计算每封电子邮件的存在次数,可以使用 count 关键字。
select Email, count(Email) as num
然后使用group by关键字对Email列中不同的元素进行数量统计:
group by Email
依次作为临时表,可以得到下面的代码。
2、代码实现
代码参考:
select Email from ( select Email, count(Email) as num from Person group by Email ) as statistic where num > 1 ;
3、时间复杂度
时间复杂度:
空间复杂度:
三、总结
1、使用count关键字查找Email出现的次数 2、使用group by关键字限定条件 3、使用临时表,返回重复的电子邮箱