SELECT a.category, a.score, (
SELECT count(*) from tbl b where a.score <= b.score AND a.category = b.category
) AS row_number
FROM tbl a
order by row_number, category
select @cat := '', @rn := 0;
select Category, Score from (
select case when @cat = Category then @rn := @rn + 1 else @rn := 1 end rn,
@cat := Category,
Category,
Score
from tbl
order by Category, Score desc
) a order by rn, Category
3条答案
按热度按时间mctunoxg1#
我想和asc和desc一起玩
也许这可以帮助您(显示查询的结果)。祝你好运。
ecfsfe2w2#
这应该能奏效。我将row_number函数模拟为一个计算列(按类别划分),然后将结果排序到新列和类别之后。
你可以在这里测试。
wvyml7n53#
尝试此查询:
演示