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实现重复的邮箱内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
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(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(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(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 |
-
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
-
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
-
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(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 | +--
随机推荐
- Mootools 1.2教程 设置和获取样式表属性
- 正则表达式截取字符串的方法技巧
- 资料:Unicode 汉字内码对应表第1/5页
- 用vbs在 HTA 内对脚本进行编码的方法
- java线性表的存储结构及其代码实现
- Java死锁_动力节点Java学院整理
- Python编程中使用Pillow来处理图像的基础教程
- 来自phpguru得Php Cache类源码
- 关于URL中的特殊符号使用介绍
- Node.js websocket使用socket.io库实现实时聊天室
- 一键配置CentOS iptables防火墙的Shell脚本分享
- C#.NET中如何批量插入大量数据到数据库中
- jQuery插件版本冲突的处理方法分析
- 实例解析Ruby程序中调用REXML来解析XML格式数据的用法
- 番茄的表单验证类代码修改版
- Cocos2d-x中获取系统时间和随机数实例
- JavaWeb文件上传与下载功能解析
- C#通过委托调用Button单击事件的方法
- Android Studio多渠道打包套路
- 详解C# 网络编程系列:实现类似QQ的即时通信程序