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

SQL关联Status_Codes表获描述,无需将描述列加入分组的方法

解决方案

方法一:先聚合再关联(推荐)

先对TRANSACTIONS表按status分组统计总数,再左连接Status_Codes表获取对应描述。这种方式既避免了在聚合阶段处理描述字段,也无需修改GROUP BY子句:

SELECT
    t.status,
    sc.description,
    t.total
FROM (
    SELECT
        status,
        COUNT(*) AS total
    FROM TRANSACTIONS
    WHERE status != 1
    GROUP BY status
) t
LEFT JOIN Status_Codes sc ON t.status = sc.status

逻辑说明:

  • 子查询先完成统计,得到每个status对应的记录数total
  • 外层通过左连接关联Status_Codes,匹配对应描述,未匹配到的状态(如3、4)会返回null,与原查询结果一致

方法二:用聚合函数包裹描述字段

如果不想使用子查询,可以用MAX()或MIN()这类聚合函数包裹sc.description。由于每个status在Status_Codes中最多对应一条描述(或无匹配),聚合后不会改变结果,同时满足GROUP BY的语法要求:

SELECT
    t.status,
    MAX(sc.description) AS description,
    COUNT(*) AS total
FROM TRANSACTIONS t
LEFT JOIN Status_Codes sc ON t.status = sc.status
WHERE t.status != 1
GROUP BY t.status

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:50:47