考试报名
考试报名
考试内容
考试大纲
在线客服
返回顶部

备考刷题,请到

CDA认证小程序

某在线教育平台有用户学习记录表 study_log,字段:log_id、user_id、course_id、start_time、duration(分钟)。现需统计2025年9月每个用户的学习总时长,并按总时长降序取前10名。以下SQL中,能正确实现且性能最佳的是?
A. SELECT user_id, SUM(duration) AS total_minutes FROM study_log WHERE MONTH(start_time)=9 AND YEAR(start_time)=2025 GROUP BY user_id ORDER BY total_minutes DESC LIMIT 10
B. SELECT user_id, SUM(duration) FROM study_log WHERE start_time BETWEEN '2025-09-01' AND '2025-09-30' GROUP BY user_id ORDER BY 2 DESC LIMIT 10
C. SELECT user_id, SUM(duration) FROM study_log WHERE start_time >= '2025-09-01' AND start_time < '2025-10-01' GROUP BY user_id ORDER BY SUM(duration) DESC LIMIT 10
D. SELECT user_id, SUM(duration) FROM study_log WHERE DATE_FORMAT(start_time,'%Y-%m') = '2025-09' GROUP BY user_id ORDER BY SUM(duration) DESC LIMIT 10
上一题
下一题
收藏
点赞
评论
题目解析
题目评论(0)

A和D使用了函数 MONTH/YEAR 或 DATE_FORMAT,会导致索引失效;B使用 BETWEEN 包含边界,但若时间字段包含时分秒,'2025-09-30' 只到当天0点,会遗漏当天后续时间,所以不精确。