首页 > 解决方案 > 如何选择对应行中前 5 个列的五个值?

问题描述

所以我有两列datenorder在我的 SQL 表中orders。我们必须选择最大订单量前 10 位的日期。我们可以这样做

SELECT date
FROM orders
ORDER BY norder DESC
LIMIT 10;

但是我们想要对这 10 个日期进行排序,使得日期在具有相同norder. 我们应该怎么做?

标签: mysqlsql

解决方案


您可以使用窗口函数。

select a.date from 
(select date,dense_rank() over (order by norder desc) as rank
from orders
order by rank desc) as a
where rank <= 10
order by date desc;

这将为您提供前 10 个最大订单的日期(包括最大订单相同的日期)。


推荐阅读