gpt4 book ai didi

mysql - MySQL 中带有 Order By 子句的 Rank 函数

转载 作者:可可西里 更新时间:2023-11-01 06:28:34 25 4
gpt4 key购买 nike

这个 (Oracle) SQL 怎么可能:

select a.*, rank() over (partition by a.field1 order by a.field2 desc) field_rank
from table_a a
order by a.field1, a.field2

被翻译成MySQL?

This question看起来很相似,但基本查询的末尾没有 Order By。另外,按分区字段排序是否重要?

最佳答案

根据您提供的链接,它应该如下所示:

SELECT    a.*,
(
CASE a.field1
WHEN @curType
THEN @curRow := @curRow + 1
ELSE @curRow := 1 AND @curType := a.field1 END
) + 1 AS rank
FROM table_a a,
(SELECT @curRow := 0, @curType := '') r
ORDER BY a.field1, a.field2 desc;

根据您提供的链接中的示例,这里有 2 个 fiddle ,一个用于 oracle,一个用于 mySql:

  1. oracle
  2. Mysql

关于mysql - MySQL 中带有 Order By 子句的 Rank 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10881990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com