【问题标题】:Is it possible to run the rank function on top of a query in MYSQL是否可以在 MYSQL 中的查询之上运行排名函数
【发布时间】:2020-10-04 06:29:02
【问题描述】:

我正在尝试在 MY SQL 中学习 windows 函数。我只想知道,如果我可以使用 from 子句中的查询来执行排名函数,就像下面在 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;

【问题讨论】:

  • 我不明白这个问题的基础。您的查询有什么问题?

标签: mysql sql select count window-functions


【解决方案1】:

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

但是请注意,您实际上并不需要为此创建子查询。聚合查询中可以直接使用窗口函数:

select
    classroom,
    count(*) cnt,
    rank() over(order by count(*) desc) row_no
from list
group by classroom

【讨论】:

  • 非常感谢,我想问题出在版本上。也感谢您的建议
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-12
  • 2013-04-13
  • 2012-02-22
  • 1970-01-01
相关资源
最近更新 更多