SQL(二)
发布日期:2021-05-06 11:08:30 浏览次数:17 分类:精选文章

本文共 1318 字,大约阅读时间需要 4 分钟。

在这里插入图片描述

在这里插入图片描述

SELECT A.dept_no, emp_no, maxSalary FROM(SELECT dept_no, salaries.emp_no AS emp_no,salaryFROM salaries JOIN dept_empON salaries.emp_no = dept_emp.emp_no) AS AJOIN (SELECT dept_no, MAX(salary) AS maxSalaryFROM salaries JOIN dept_empON salaries.emp_no = dept_emp.emp_noGROUP BY dept_no) AS BON A.dept_no = B.dept_noWHERE salary = maxSalaryORDER BY A.dept_no;

在这里插入图片描述

在这里插入图片描述

select  e.emp_no,s.salary,e.last_name,e.first_namefrom employees e inner join salaries son e.emp_no = s.emp_nowhere s.salary = (select max(salary) from salaries WHERE salary<(select max(salary) from salaries) )

在这里插入图片描述

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INTBEGIN    declare m INT;    set m=N-1;   RETURN (      # Write your MySQL query statement below.      SELECT Salary FROM Employee      GROUP BY Salary      ORDER BY Salary DESC      LIMIT m,1  );END

在这里插入图片描述

在这里插入图片描述

# Write your MySQL query statement belowSELECT a.Score,(SELECT COUNT(DISTINCT(Score)) FROM Scores AS b WHERE b.Score >= a.Score) AS 'Rank' FROM Scores AS aORDER BY a.Score DESC

排名函数

row_number():依次递增排名,无重复排名

rank():相同分数有重复排名,但是重复后下一个人按照实际排名
dense_rank():分数一致排名一致,分数不一致排名+1
NTILE(4):分组排名,里面的数字是几,最多排名就是几,里面的数字是4,最多的排名就是4

在这里插入图片描述

select *,   rank() over (order by 成绩 desc) as ranking,   dense_rank() over (order by 成绩 desc) as dese_rank,   row_number() over (order by 成绩 desc) as row_numfrom 班级

有的版本的MySQL不支持

在这里插入图片描述

上一篇:773.滑动谜题
下一篇:599. 两个列表的最小索引总和

发表评论

最新留言

很好
[***.229.124.182]2025年03月26日 01时38分41秒