我正在努力学习我的sql中的windows函数。我想知道的是,如果我可以使用from子句中的查询来执行rank函数,就像我在mysql中展示的那样。
SELECT s.classroom , rank() over ( order by s.cnt desc) row_no from ( select classroom,count(*) as cnt from list group by classroom )s;
vd2z7a6w1#
是的,您的查询是有效的sql—假设您运行的是MySQL8.0,因为早期版本不支持窗口函数,例如 rank() .但是,请注意,您实际上不需要对此进行子查询。可以在聚合查询中直接使用窗口函数:
rank()
select classroom, count(*) cnt, rank() over(order by count(*) desc) row_no from list group by classroom
1条答案
按热度按时间vd2z7a6w1#
是的,您的查询是有效的sql—假设您运行的是MySQL8.0,因为早期版本不支持窗口函数,例如
rank()
.但是,请注意,您实际上不需要对此进行子查询。可以在聚合查询中直接使用窗口函数: