mysql - 如何选择对应行中前 5 个列的五个值?
问题描述
所以我有两列date
,norder
在我的 SQL 表中orders
。我们必须选择最大订单量前 10 位的日期。我们可以这样做
SELECT date
FROM orders
ORDER BY norder DESC
LIMIT 10;
但是我们想要对这 10 个日期进行排序,使得日期在具有相同norder
. 我们应该怎么做?
解决方案
您可以使用窗口函数。
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 个最大订单的日期(包括最大订单相同的日期)。
推荐阅读
- excel - 当单元格值更改时,如何为一系列行添加粗底边框?
- pickle - 加载 XGBoost 模型:ModuleNotFoundError:没有名为“sklearn.preprocessing._label”的模块
- python - 如何在 Django 中处理多文件输入字段
- python - Python 3.7 psycopg2 - Xcode 错误“错误:命令‘gcc’失败,退出状态为 1”
- python - 使用 Python 通过 Mailgun 提交变量时出错
- mysql - 在特定事件之前计数事件
- bash - 如何使用 alt-left 和 alt-right 在 bash 中实现“后退”和“前进”?
- r - R 空间 - 边界图
- google-maps - Google API 发票异常增加
- c - 编译成功后SDL2没有运行的问题