是否有可能在MYSQL的查询顶部运行等级函数

问题描述 投票:-1回答:1

我正在尝试在MY SQL中学习Windows函数。我想知道的是,是否可以在from子句中使用查询来执行等级函数,如下面在MYSQL中所示。

SELECT s.classroom,rank()over(由s.cnt desc排序)row_no来自( 选择教室,count(*)为cnt 从清单 按教室分组)s;

mysql sql select count window-functions
1个回答
0
投票

是,您的查询是有效的SQL-假设您正在运行MySQL 8.0,因为早期版本不支持诸如rank()之类的窗口函数。

但是,请注意,您实际上并不需要子查询。您可以直接在汇总查询中使用window函数:

select
    classroom,
    count(*) cnt,
    rank() over(order by count(*) desc) row_no
from list
group by classroom
    
© www.soinside.com 2019 - 2024. All rights reserved.