最近一直在求职,好不容易看中了一家非常好的公司,投了简历,隔了2天,该公司总监审核通过,说让hr联系我,由于该公司是某知名民宿公司,为此我专门找出了做了很久的二手房产交易平台的数据和租房数据从新整理了一遍,早早来到该公司附近,不瞒大家说,我12点多就到了那边,而约的面试时间是下午4:30,因为早上面试了一个操盘手公司,那经理面试我全程不到5分钟,说实话,上面写着数据分析师我才去的,我实在是被骗了。
提早到了,正好中午,我随便找了家餐馆,点了个最便宜的菜(真穷)好在这家店有空调,我可以慢慢吃,拿出我之前做的房产项目慢慢看。吃完饭,我转了一圈,愣是没找到个奶茶店,好在机灵,我搜到了附近有一家超级便宜的网咖,于是。。。。。
网吧一股烟味,充了钱,网吧柜台问我吸不吸烟,于是我被带到不吸烟区,就这样,我在网吧蹭了一下午。。。空调,冲了29块钱,还剩39.。。
再网吧蹭一下午空调还送了一杯奶茶,总共花费1元。
在网吧看了一下午自己的项目和sql笔记 。。。。。
重点来了,4.30 准时到应聘公司,面试官是一位小姐姐,让我先做三道sql 我,轻轻瞥了一眼,心里想,这太简单了。。。(真的做过,但我承认轻敌了。。)
3 题错两 我都不好意思了。。。做完 hr问我感觉如何,
我说,太简单了, hr问我觉得对了几个,我说肯定全对。。。。
哈哈哈哈,我的自信还是有的。。
第二题 删除重复的邮箱号,保留id 最小的。
三题
员工表
部门表
求每个部门最高工资的员工
数据
DROP TABLE IF EXISTS employee ;
CREATE TABLE employee (Id int ,
Name VARCHAR (11),
salary int,
departmentId int
);
DROP TABLE IF EXISTS department;
CREATE TABLE department(id int,
name VARCHAR(11));
INSERT employee VALUES (1,'joe',7000,1),
(2,'henry',8000,2),(3,'sam',6000,2),(4,'max',9000,1);
INSERT department VALUES (1,'it'),(2,'sales');
DROP TABLE if EXISTS mails;
CREATE TABLE mails (id int,
mail VARCHAR (25));
INSERT mails VALUES(1,"672377334@qq.com"),(2,"duzhe1024@qq.com"),(3,"672377334@qq.com"),(4,"duzhe1024@qq.com");
答案
# 2
SELECT
DELETE FROM mails
WHERE id not in (SELECT * FROM (SELECT min(id) FROM mails GROUP BY mail) ids) ;
SELECT * FROM mails;
# 3
SELECT
department.name department,
e.Name employee,
e.salary
FROM employee e,department,
(SELECT departmentId,max(salary) salary FROM employee GROUP BY departmentId) d
WHERE e.departmentId=d.departmentId
AND e.salary=d.salary and department.id=e.departmentId ORDER BY salary desc
这是我回家后复盘的做出的 正确答案
面试中当场挂,尴尬的不行!全部死在group by上!!!