Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何显示行或具有最大值的行?_Mysql_Sql_Sql Order By_Greatest N Per Group_Window Functions - Fatal编程技术网

Mysql 如何显示行或具有最大值的行?

Mysql 如何显示行或具有最大值的行?,mysql,sql,sql-order-by,greatest-n-per-group,window-functions,Mysql,Sql,Sql Order By,Greatest N Per Group,Window Functions,我试图显示一行或多行具有最高工资,我尝试了以下方法。我想至少显示姓名和maxsalary,但我无法这样做 我试图执行这个代码段,但它显示的是第一行,而不是工资最高的那一行 select * from instructor having max(salary); 我也试过了 select name, max(salary) from instructor; 但是它从第一行返回名称,从整列返回最大薪资值。如果您运行的是Oracle,我建议使用fetch子句: 另一种方法是使用相关子查询,这在Or

我试图显示一行或多行具有最高工资,我尝试了以下方法。我想至少显示姓名和maxsalary,但我无法这样做

我试图执行这个代码段,但它显示的是第一行,而不是工资最高的那一行

select * from instructor
having max(salary);
我也试过了

select name, max(salary) from instructor;

但是它从第一行返回名称,从整列返回最大薪资值。

如果您运行的是Oracle,我建议使用fetch子句:

另一种方法是使用相关子查询,这在Oracle和任何版本的MySQL中都受支持:

select *
from instructor
where salary = (select max(salary) from instructor)
或者,您可以使用窗口函数,这需要MySQL 8.0

select *
from (select i.*, rank() over(order by salary desc) rn from instructor) i
where rn = 1

MySQL还是Oracle?请仅标记一个数据库。请。仅将图像用于不能表示为文本或扩充文本的内容。包括图例/图例和说明以及图像。请参见代码问题中给出的-剪切粘贴和可运行代码,包括作为代码输入的最小代表性示例;期望和实际输出,包括逐字记录错误消息;标签和版本;清晰的说明和解释。尽可能少地给出代码,即显示为OK的代码,并通过显示为not OK的代码进行扩展。调试基础。对于包含DBMS和DDL(包括约束和索引)的SQL,以表格式作为代码输入。暂停总体目标的工作,在第一个表达中删去代码,不要给出你期望的东西,说出你期望的东西和原因。很明显,如果明确说明,这将是一个常见问题解答。在考虑发帖之前,请先阅读您的课本和/或手册,并在谷歌上搜索任何错误消息或您的问题/问题/目标的许多清晰、简洁和准确的措辞,包括或不包括您的特定字符串/名称和网站:stackoverflow.com&tags;阅读许多答案。反思你的研究。请参见文本上方的投票箭头(&S)。如果您发布一个问题,请使用一个短语作为标题。很抱歉,我之前有点混淆了Oracle和MySQL,但我使用的是MySQL,subquery命令对我有效。非常感谢。
select *
from (select i.*, rank() over(order by salary desc) rn from instructor) i
where rn = 1