SQL实现LeetCode(182.重复的邮箱)
[LeetCode] 182.Duplicate Emails 重复的邮箱
Write a SQL query to find all duplicate emails in a table named Person.
+----+---------+
| Id | Email |
+----+---------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
+----+---------+
For example, your query should return the following for the above table:
+---------+
| Email |
+---------+
| a@b.com |
+---------+
Note: All emails are in lowercase.
这道题让我们求重复的邮箱,那么最直接的方法就是用Group by...Having Count(*)...的固定搭配来做,代码如下:
解法一:
SELECT Email FROM Person GROUP BY Email HAVING COUNT(*) > 1;
我们还可以用内交来做,用Email来内交两个表,然后返回Id不同的行,则说明两个不同的人使用了相同的邮箱:
解法二:
SELECT DISTINCT p1.Email FROM Person p1 JOIN Person p2 ON p1.Email = p2.Email WHERE p1.Id <> p2.Id;
参考资料:
https://leetcode.com/discuss/53206/a-solution-using-a-group-by-and-another-one-using-a-self-join
到此这篇关于SQL实现LeetCode(182.重复的邮箱)的文章就介绍到这了,更多相关SQL实现重复的邮箱内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
SQL实现LeetCode(177.第N高薪水)
[LeetCode] 177.Nth Highest Salary 第N高薪水 Write a SQL query to get the nth highest salary from the Employee table. +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3 | 300 | +----+--------+ For example, given the ab
-
SQL实现LeetCode(178.分数排行)
[LeetCode] 178.Rank Scores 分数排行 Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ranking. Note that after a tie, the next ranking number should be the next consecutive integer value. In other words, th
-
SQL实现LeetCode(180.连续的数字)
[LeetCode] 180.Consecutive Numbers 连续的数字 Write a SQL query to find all numbers that appear at least three times consecutively. +----+-----+ | Id | Num | +----+-----+ | 1 | 1 | | 2 | 1 | | 3 | 1 | | 4 | 2 | | 5 | 1 | | 6 | 2 | | 7 |
-
C++实现LeetCode(173.二叉搜索树迭代器)
[LeetCode] 173.Binary Search Tree Iterator 二叉搜索树迭代器 Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST. Calling next() will return the next smallest number in the BST. Note: next() and
-
SQL实现LeetCode(181.员工挣得比经理多)
[LeetCode] 181.Employees Earning More Than Their Managers 员工挣得比经理多 The Employee table holds all employees including their managers. Every employee has an Id, and there is also a column for the manager Id. +----+-------+--------+-----------+ | Id | Na
-
C++实现LeetCode(179.最大组合数)
[LeetCode] 179. Largest Number 最大组合数 Given a list of non negative integers, arrange them such that they form the largest number. Example 1: Input: [10,2] Output: "210" Example 2: Input: [3,30,34,5,9] Output: "9534330" Note: The result
-
SQL实现LeetCode(176.第二高薪水)
[LeetCode] 176.Second Highest Salary 第二高薪水 Write a SQL query to get the second highest salary from the Employee table. +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3 | 300 | +----+--------+ For example, given
-
SQL实现LeetCode(175.联合两表)
[LeetCode] 175.Combine Two Tables 联合两表 Table: Person +-------------+---------+ | Column Name | Type | +-------------+---------+ | PersonId | int | | FirstName | varchar | | LastName | varchar | +-------------+---------+ PersonId is the
-
SQL实现LeetCode(182.重复的邮箱)
[LeetCode] 182.Duplicate Emails 重复的邮箱 Write a SQL query to find all duplicate emails in a table named Person. +----+---------+ | Id | Email | +----+---------+ | 1 | a@b.com | | 2 | c@d.com | | 3 | a@b.com | +----+---------+ For example, your que
-
SQL实现LeetCode(183.从未下单订购的顾客)
[LeetCode] 183.Customers Who Never Order 从未下单订购的顾客 Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL query to find all customers who never order anything. Table: Customers. +----+-------+ | Id | Name |
-
SQL实现LeetCode(196.删除重复邮箱)
[LeetCode] 196.Delete Duplicate Emails 删除重复邮箱 Write a SQL query to delete all duplicate email entries in a table named Person, keeping only unique emails based on its smallest Id. +----+------------------+ | Id | Email | +----+------------
-
SQL语句实现删除重复记录并只保留一条
复制代码 代码如下: delete WeiBoTopics where Id in(select max(Id) from WeiBoTopics group by WeiBoId,Title having COUNT(*) > 1); SQL:删除重复数据,只保留一条用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 复制代码 代码如下: select * fr
-
SQL实现LeetCode(185.系里前三高薪水)
[LeetCode] 185.Department Top Three Salaries 系里前三高薪水 The Employee table holds all employees. Every employee has an Id, and there is also a column for the department Id. +----+-------+--------+--------------+ | Id | Name | Salary | DepartmentId | +--
随机推荐
- python实现在目录中查找指定文件的方法
- MySQL 序列 AUTO_INCREMENT详解及实例代码
- 用正则按最后一个"_"分割"字符
- ASP.NET页面某些选项进行提示判断具体实现
- js窗口关闭提示信息(兼容IE和firefox)
- 两个select多选模式的选项相互移动(示例代码)
- PHP获取客户端及服务器端IP的封装类
- 前端必备神器 Snap.svg 弹动效果
- C语言高斯消元法的使用详解
- 基于Kubernetes和Docke实现留言簿案例
- shell脚本连接、读写、操作mysql数据库实例
- 关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
- php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创
- Mysql 5.7.18 解压版下载安装及启动mysql服务的图文详解
- js 上下左右键控制焦点(示例代码)
- Javascript数组操作函数总结
- Nginx上传文件全部缓存解决方案
- 相册管理系统(Java表单+xml数据库存储)
- Android五子棋游戏程序完整实例分析
- Android编程获取屏幕宽高与获取控件宽高的方法
