【问题标题】:mySQL SUM a previous grouped querymySQL SUM 以前的分组查询
【发布时间】:2025-12-20 16:30:12
【问题描述】:

我需要为每个 MODEL 获得一个汇总结果,该结果将来自先前查询的先前过滤项目的总数相加:

SELECT model, ratio, if(count(model)>=3,3,count(model)) AS gearcount 
FROM zfgearinv 
WHERE allocated = 0 AND sold = 0 
GROUP BY model, ratio 
ORDER BY model

在这个查询中,我只显示

MODEL     RATIO GEARCOUNT
ZF 220A   1.23  2
ZF 220A   1.53  3
ZF 220A   1.75  3
ZF 220A   2     1
ZF 220A   2.45  2
ZF 220V   1.5   3
ZF 220V   1.75  1
ZF 220V   2     3
ZF 220V   2.5   3

所以我的最终输出应该是:

MODEL     TOTAL
ZF 220A   11
ZF 220V   10

【问题讨论】:

    标签: mysql sum subquery grouping


    【解决方案1】:

    您需要做的就是用一个外部查询包装该查询,您可以在其中对您的 gearcount 进行求和

    SELECT model as MODEL, SUM(gearcount) as TOTAL
    FROM
    (   SELECT model, ratio, if(count(model)>=3,3,count(model)) AS gearcount 
        FROM zfgearinv 
        WHERE allocated = 0 AND sold = 0 
        GROUP BY model, ratio
    ) t
    GROUP BY model
    ORDER BY model
    

    【讨论】: