这怎么可能(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个小提琴,一个是针对oracle的,另一个是针对mySql的,基于您提供的链接中的示例: