Sql 查询以获取最多 10 条的最新记录并按提到行排名的字段排序 [关闭]

Posted

技术标签:

【中文标题】Sql 查询以获取最多 10 条的最新记录并按提到行排名的字段排序 [关闭]【英文标题】:Sql query to fetch most recent record upto 10 and order by filed where row rank is mentioned [closed] 【发布时间】:2021-03-08 05:05:27 【问题描述】:

以下是我在 mysql 中的表。我想在字段“rank_date”中获取最新日期的记录,并根据字段“drama_rank”中的订单号按顺序 1 到 10 显示结果

【问题讨论】:

请将示例数据发布为 SQL INSERT 语句,而不是图片 【参考方案1】:

你可以用子查询过滤,然后order by:

select t.*
from mytable t
where rank_date = (select max(rank_date) from mytable)
order by drama_rank

或者,假设 MySQL 8.0,您可以使用窗口函数:

select *
from (
    select t.*, rank() over(order by rank_date desc) rn
    from mytable t
) t
where rn = 1
order by drama_rank

【讨论】:

select t.* from mytable t where rank_date = (select max(rank_date) from mytable) order by Drama_rank 上面的代码运行良好。我希望我在花 2 小时尝试不同的查询之前在这里问过。谢谢老兄。

以上是关于Sql 查询以获取最多 10 条的最新记录并按提到行排名的字段排序 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何编写 hql 查询或条件查询以根据时间戳获取最新记录

如何查询 sql 以获取最新的记录日期,但如果记录有消息返回该 reocrd [关闭]

如何获取SQL查询当前数据上一条和下一条的记录?

SQL 按日期排序并按用户获取结果

使用sql查询获取最新发布记录

用于查找每个给定位置的最多供应商数量的 SQL 查询