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

如何嵌套SUM与JOIN查询:关联两表统计时长

解决方案

你可以通过两种方式实现需求,以下是具体SQL语句及说明:

方式一:先分组统计再关联(推荐,性能更优)

先对scrap_log按Reason分组计算总时长,再通过code关联scrap_reasons获取对应描述:

SELECT sr.description AS Description, sl.total_duration AS Total
FROM (
    -- 子查询:统计每个Reason对应的总时长
    SELECT Reason, SUM(Duration) AS total_duration
    FROM scrap_log
    GROUP BY Reason
) sl
-- 关联scrap_reasons表,匹配code和Reason
JOIN scrap_reasons sr ON sl.Reason = sr.code;

方式二:先关联再分组

先将两张表关联,再按code和description分组统计总时长:

SELECT sr.description AS Description, SUM(sl.Duration) AS Total
FROM scrap_log sl
JOIN scrap_reasons sr ON sl.Reason = sr.code
GROUP BY sr.code, sr.description;

结果说明

两种方式都会得到你期望的输出:

TotalDescription
60Bad Color
42Bad Shape
66Bad Size

注:如果需要保留scrap_reasons中没有对应scrap_log记录的条目(比如code=14的"Bad etc.."),可以将JOIN改为LEFT JOIN,此时对应的Total会显示为NULL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 02:06:53