You need to enable JavaScript to run this app. 使用SQL查询获取2009年1月播放时长TOP10歌曲的问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

使用SQL查询获取2009年1月播放时长TOP10歌曲的问题咨询

你的现有实现思路存在几个问题,调整后才能满足需求:

  • 缺失GROUP BY分组逻辑:你在ORDER BY里用了聚合函数SUM(),但没有按照歌曲维度分组,SQL会直接报错,无法正确计算每首歌曲的总播放时长。
  • LEFT JOIN逻辑无效:你使用了LEFT JOIN关联两张表,但WHERE子句筛选了client表的date字段,会直接过滤掉所有没有播放记录的歌曲,实际等价于INNER JOIN。
  • 缺少返回前10条的限制:没有加LIMIT 10,最终会返回所有符合时间条件的歌曲,而非排名前10的结果。

修正后的查询语句参考:

SELECT m.song_name, SUM(c.playing_hrs) AS total_playing_hrs
FROM music m
INNER JOIN client c ON m.id = c.music_id
WHERE c.date BETWEEN '2009-01-01' AND '2009-01-31'
GROUP BY m.id, m.song_name
ORDER BY total_playing_hrs DESC
LIMIT 10;

补充说明:如果存在同名歌曲的情况,按照music.id分组可以避免同名字段被错误合并统计,结果更准确。

内容的提问来源于stack exchange,提问作者user10649856

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 03:45:04