牛客网 sql篇
qq_40396568
这个作者很懒,什么都没留下…
展开
-
对所有员工的薪水按照salary降序进行1-N的排名,要求相同salary并列且按照emp_no升序排列:
select emp_no,salary,dense_rank() over(order by salary desc) as t_rankfrom salariesorder by emp_no;dense_rank 稠密排列,允许重复排名,排名【按工资高低】之后另起一列编号,再根据编号和员工号排序加编号排序sql几种排序方式【正常排】rank 可并列,有重复排名,跳跃式 1224【稠密排列】dense_rank 不间断,可并列 ...原创 2021-08-04 23:41:56 · 483 阅读 · 0 评论 -
SQL24 获取所有非manager员工当前的
方式一:四表联查联查之后emp_no有多列,去掉经理表中的员工列select de.dept_no,de.emp_no,s.salary from employees einner join dept_emp de on e.emp_no=de.emp_noinner join dept_manager dm on de.dept_no=dm.dept_noinner join salaries s on e.emp_no=s.emp_nowhere e.emp_no != dm.e...原创 2021-08-05 00:07:17 · 181 阅读 · 0 评论 -
SQL42 删除emp_no重复的记录,只保留最小的id
https://www.nowcoder.com/practice/3d92551a6f6d4f1ebde272d20872cf05?tpId=82&tags=&title=&difficulty=0&judgeStatus=0&rp=0题看上面错误示例原因是,你不能一边查这个表(子查询),一边把这个表给删了delete from titles_testwhere id not in(select min(id) from titles_te原创 2021-08-07 15:39:56 · 80 阅读 · 0 评论 -
SQL67 牛客每个人最近的登录日期(二)
sqllite这么做是对的,但是mysql是错的【三表联立】select u.name as u_n,c.name as c_n,max(l.date)from login l inner join user uon u.id=l.user_idinner join client con c.id=l.client_idgroup by l.user_idorder by u.name在mysql中,虽然能够通过group和max函数取出相应user_id和组内最大值,但是...原创 2021-07-16 21:39:36 · 186 阅读 · 0 评论