将整个组移动1步-MYSQL

将整个组移动1步-MYSQL,mysql,sql,subquery,window-functions,Mysql,Sql,Subquery,Window Functions,这里有数据库表的name和pay-as列 表中的Name和pay按从低到高的顺序排列为列,而我需要的列是必填列 我需要最右边的一栏,它基本上是显示下一个付款。 总的来说,斯坦福大学的工资是14,第二高的是15。其他人也是如此 我该怎么做? 非常感谢您的帮助。我知道您希望获得下一笔超值报酬 如果您运行的是MySQL 8.0,则可以使用窗口函数和范围框架: 在早期版本中,另一种选择是关联子查询: select t.*, (select min(t1.pay) from mytable t1

这里有数据库表的name和pay-as列

表中的Name和pay按从低到高的顺序排列为列,而我需要的列是必填列

我需要最右边的一栏,它基本上是显示下一个付款。 总的来说,斯坦福大学的工资是14,第二高的是15。其他人也是如此

我该怎么做?
非常感谢您的帮助。

我知道您希望获得下一笔超值报酬

如果您运行的是MySQL 8.0,则可以使用窗口函数和范围框架:

在早期版本中,另一种选择是关联子查询:

select t.*,
    (select min(t1.pay) from mytable t1 where t1.pay > t.pay) next_pay
from mytable t

我知道你想要下一个价值报酬

如果您运行的是MySQL 8.0,则可以使用窗口函数和范围框架:

在早期版本中,另一种选择是关联子查询:

select t.*,
    (select min(t1.pay) from mytable t1 where t1.pay > t.pay) next_pay
from mytable t

能否显示预期结果?请仅标记相关的RDBMS,并查看请添加计算最右边列的信息。我不明白为什么Darson和Meads有不同的值?按薪酬排序的列。这里Darson下一个最高薪酬是22,同样,Meads下一个最高薪酬是20。您能显示预期结果吗?请仅标记相关的RDBMS,并查看请添加计算最右边列的信息。我不明白为什么Darson和Meads有不同的值?按薪酬排序的列。这里Darson的下一个最高薪酬是22,同样,Meads的下一个最高薪酬是20谢谢你的回答。如果工资是整数,但有小数点,则此操作有效。它显示的是一个不同的数字。@RamyaM:您的示例数据没有显示小数。假设您有2个十进制数字,您可能希望使用1个以下和无界以下的overorder by pay*100范围。或者只使用子查询解决方案,不管数字类型如何,都可以使用。谢谢您的回答。如果工资是整数,但有小数点,则此操作有效。它显示的是一个不同的数字。@RamyaM:您的示例数据没有显示小数。假设您有2个十进制数字,您可能希望使用1个以下和无界以下的overorder by pay*100范围。或者只使用子查询解决方案,不管数字类型如何。