- **为什么需要子查询(sub)?**  
     在SQL中,窗口函数(如`ROW_NUMBER()`)会为每一行计算一个值(这里是为每个月每首歌计算一个排名)。但是,我们不能在同一个SELECT语句的WHERE子句中直接使用这个窗口函数的结果(因为执行顺序:WHERE在窗口函数之前执行)。所以,我们需要将窗口函数放在子查询中,然后在外部查询中过滤(`WHERE sub.ranking <= 3`)。

   - **GROUP BY的作用**:将数据按指定字段分组,然后对每个组应用聚合函数(如COUNT(*))。SELECT子句中出现的非聚合字段,必须出现在GROUP BY子句中(或使用聚合函数包裹)。所以这里的song_name必须出现在group by子句当中
全部评论

相关推荐

06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务