leetcode182. Duplicate Emails
来源:互联网 发布:贝恩杯 知乎 编辑:程序博客网 时间:2024/06/05 23:50
182. Duplicate Emails
1。建表
create table if not exists Person_182 ( Id int(10) not null auto_increment, Email varchar(20) default null, primary key(Id))ENGINE=InnoDB DEFAULT CHARSET=utf8insert into Person_182(Email) values ('a@b.com');insert into Person_182(Email) values ('a@b.com');insert into Person_182(Email) values ('a@b.com');insert into Person_182(Email) values ('c@d.com');insert into Person_182(Email) values ('c@d.com');insert into Person_182(Email) values ('d@e.com');select * from Person_182 order by Email;
2。答案
说明:提交时需要将Person_182修改为Person
SELECT Email FROM Person_182GROUP BY Email HAVING COUNT(*) > 1;SELECT Email FROM Person_182GROUP BY Email HAVING COUNT(Id) > 1;SELECT Email FROM Person_182GROUP BY Email HAVING COUNT(Email) > 1;SELECT distinct a.EmailFROM Person_182 a,Person_182 bWHERE a.Id > b.IdAND a.Email=b.Email#Use self joinSELECT DISTINCT a.Email FROM Person_182 a JOIN Person_182 b ON (a.Email = b.Email) WHERE a.Id <> b.Id SELECT DISTINCT a.Email FROM Person_182 a WHERE EXISTS( SELECT 1 FROM Person_182 b WHERE a.Email = b.Email LIMIT 1, 1 )
练习
建立熟悉的订单表
create table if not exists Orders ( O_Id int(10) not null auto_increment, OrderDate date default null, OrderPrice int(20), Customer varchar(20) default null, primary key(O_Id))ENGINE=InnoDB DEFAULT CHARSET=utf8insert into Orders(OrderDate, OrderPrice, Customer) values ('2008/12/29', 1000, 'Bush');insert into Orders(OrderDate, OrderPrice, Customer) values ('2008/12/29', 1600, 'Carter');insert into Orders(OrderDate, OrderPrice, Customer) values ('2008/12/29', 700, 'Bush');insert into Orders(OrderDate, OrderPrice, Customer) values ('2008/12/29', 300, 'Bush');insert into Orders(OrderDate, OrderPrice, Customer) values ('2008/12/29', 2000, 'Adams');insert into Orders(OrderDate, OrderPrice, Customer) values ('2008/12/29', 100, 'Carter');select * from Orders order by Customer;
需求1:我们希望查找每个客户的总金额(总订单)。我们想要使用 GROUP BY 语句对客户进行组合。
SELECT Customer,SUM(OrderPrice) FROM OrdersGROUP BY Customer
需求2:我们希望查找订单总金额少于 2000 的客户。
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
SELECT Customer,SUM(OrderPrice) FROM OrdersGROUP BY CustomerHAVING SUM(OrderPrice)<2000
需求3:希望查找客户 “Bush” 或 “Adams” 拥有超过 1500 的订单总金额。
我们在 SQL 语句中增加了一个普通的 WHERE 子句:
SELECT Customer,SUM(OrderPrice) FROM OrdersWHERE Customer='Bush' OR Customer='Adams'GROUP BY CustomerHAVING SUM(OrderPrice)>1500
需求4:将Orders表按照OrderPrice降序(升序)后选择前5个元素?
select * from Orders order by OrderPrice asc limit 5;select * from Orders order by OrderPrice desc limit 5;
需求5:将将Orders表按照OrderPrice降序后从第3条记录开始选择4条记录?
select * from Orders order by OrderPrice asc limit 2, 4
解释:
我们知道,在ms sql server中或access中,
若要查询前10条记录,使用top 10即可,
但在mysql中不支持这个写法,它用limit 10。
我们可以利用MySQL中SELECT支持的一个子句——LIMIT——来完成这项功能。
LIMIT可以实现top N查询,也可以实现M至N(某一段)的记录查询,具体语法如下:
SELECT * FROM MYTABLEORDER BY AFIELD LIMIT offset, recnum其中offset为从第几条(M+1)记录开始,recnum为返回的记录条数。例: select * from mytableorder by afield limit 2, 5 即意为从第3条记录开始的5条记录。
参考文章
创建默认的日期时间类型。
OrderDate datetime NOT NULL DEFAULT NOW(),
CREATE TABLE OrdersTestxx( OrderId int NOT NULL auto_increment, ProductName varchar(50) NOT NULL, OrderDate datetime NOT NULL DEFAULT NOW(), PRIMARY KEY (OrderId))
阅读全文
1 0
- leetcode182. Duplicate Emails
- Leetcode182. Duplicate Emails
- leetcode182-Duplicate Emails(找出出现重复的数据)
- Duplicate Emails
- Duplicate Emails
- Duplicate Emails
- Duplicate Emails
- Duplicate Emails
- Duplicate Emails
- Duplicate Emails Leetcode SQL
- [LeetCode][Database]Duplicate Emails
- LeetCode OJ Duplicate Emails
- LeetCode Delete Duplicate Emails
- Delete Duplicate Emails
- 【Leetcode Database】Duplicate Emails
- Duplicate Emails LeetCode
- Delete Duplicate Emails LeetCode
- Leetcode: Duplicate Emails
- “-bash: /usr/local/bin/npm: No such file or directory” centos7 nodejs yum安装包损坏的修复
- 从 LeetCode 279 实践动态规划
- 个人FTP(FileZilla_Server) 使用
- UVa10881
- 浅谈m1卡
- leetcode182. Duplicate Emails
- 贫穷的VIM作者Bram Moolenaar
- win7 IIS7.5配置伪静态
- ip正则表达式验证
- 什么是Code Review
- idea 基于maven 的ssm 整合实现登录功能(第一篇)
- 基于百度地图Web API的物联设备调试工具(一)
- web前端接触到的功能及页面
- hdoj1069 Monkey and Banana(DP)