leetcode天天见~今天面了京东,希望可以过HR面!
182.查找重复的电子邮箱
183.从不订购的客户
196.删除重复的电子邮箱
182.查找重复的电子邮箱
虽然是一道简单题,但是终于见到了之前没学好的GROUP BY和HAVING 开心😊
GROUP BY用来进行分组
HAVING用来过滤分组
SELECT Email
FROM Person
GROUP BY Email
HAVING COUNT(Email) > 1;
183.从不订购的客户
吼吼吼~~!!此题的目标是!找出白嫖党
会是谁呢~给出的表是所有的用户以及购买过的用户,从所有用户里找出NOT IN购买过的就好啦
SELECT customers.name AS 'Customers'
FROM customers
WHERE customers.id NOT IN (
SELECT customerid FROM orders);
这样执行之后的结果并不是特别好!!我怎么会心甘情愿满足~于是乎,我去翻了万能的评论,学到了左联结查询这一神奇的做法
SELECT Name AS Customers
FROM Customers LEFT JOIN Orders
ON Customers.Id = Orders.CustomerI
dWHERE Orders.Id is null
机智的我以为这样会有质的飞跃!妹想到啊~并没有差太多,但还是学到了学到了~~
196.删除重复的电子邮箱
找到每组邮箱中的最小ID,利用DELETE删掉ID不在最小ID中的行
DELETE FROM Person
WHERE Id NOT In(
SELECT MINEmail.Id FROM (
(SELECT MIN(Id) as Id FROM Person GROUP BY Email) AS MINEmail ))
感觉官方解答有点绕且没踏到点子上~~不如暴力解答来得直接!而且超过了99%多的人,很满意啦
今天就到这里啦!最近开始掉头发了,为了能保持美美的!早点睡觉!