You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询实现按回答数量从多到少排列所有问题

问题排查与修正SQL写法

原代码问题

  • 使用INNER JOIN关联Questions和Answers表,会直接过滤掉没有任何回答的问题,不符合「列出所有问题」的需求,应替换为LEFT JOIN保留全量问题数据
  • 缺少按问题分组的聚合逻辑,无法统计每个问题对应的回答数量
  • 排序规则错误,max(comments.id)中的comments表未在查询中引入,也不是要求的排序依据,排序应该基于每个问题的回答数量倒序

正确查询语句

仅输出问题ID的简化版本

SELECT q.id
FROM Questions q
LEFT JOIN Answers a ON q.id = a.question_id
GROUP BY q.id
ORDER BY COUNT(a.id) DESC;

同时展示问题信息和回答数的完整版本

SELECT 
    q.id AS 问题ID,
    q.content AS 问题内容, -- 可根据实际表字段调整
    COUNT(a.id) AS 回答数量
FROM 
    Questions q
LEFT JOIN 
    Answers a ON q.id = a.question_id
GROUP BY 
    q.id, q.content -- 所有非聚合的查询字段都需要加入GROUP BY,仅保留q.id可兼容大部分数据库场景
ORDER BY 
    回答数量 DESC;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:27:01