我有一张paystub
记录工资单记录的表。
与此查询相关的字段是YearToDateGrossPay
和year
。
我需要搜索所有的 paystub 记录并选择前 5 个最高薪年。
每年的最后一个工资单会告诉我该年的最终 YTD 金额,然后我可以选择该子查询的前 5 个,但我不太确定该怎么做。
任何帮助,将不胜感激。
谢谢
我有一张paystub
记录工资单记录的表。
与此查询相关的字段是YearToDateGrossPay
和year
。
我需要搜索所有的 paystub 记录并选择前 5 个最高薪年。
每年的最后一个工资单会告诉我该年的最终 YTD 金额,然后我可以选择该子查询的前 5 个,但我不太确定该怎么做。
任何帮助,将不胜感激。
谢谢
如果您已经有选择最终 YTD 金额的子查询,您可以通过
SELECT * FROM final_ytd_amounts ORDER BY ytd_amount DESC LIMIT 5
ORDER BY ytd_amount DESC 按 ytd_amount 降序对表进行排序
LIMIT 5 只选择前 5 行,并切掉其他所有内容
如果您使用的是 SQL Server,则上述方法将不起作用。通常,您应该在询问查询时指定特定的数据库。在 SQL Server 中,您可以执行以下操作:
SELECT top 5 *
FROM final_ytd_amounts
ORDER BY ytd_amount DESC
为了完整起见,以下是您在 Oracle 中执行此操作的方式:
SELECT *
FROM final_ytd_amounts
where rownum <= 5
ORDER BY ytd_amount DESC
标准 SQL:
SELECT *
FROM final_ytd_amounts
WHERE ROWNUM <= 5
ORDER BY ytd_amount DESC