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

基于两张表计算同category_id下金额总和的SQL查询需求

解决方案:关联表并按分组求和去重

我来帮你搞定这个统计需求!你需要关联两张表,只保留在表TWO中存在的product_id,然后按cat_id分组(每个name在分组里只显示一次),同时计算对应分组的amount总和对吧?

正确的SQL查询语句

结合你实际的库表结构,对应的查询语句应该是这样的:

SELECT 
    cat.cat_id, 
    cat.name, 
    SUM(cat_p.amount) AS total_amount
FROM 
    ps_product_brand AS cat
INNER JOIN 
    ps_product_custom_statistics_weekly AS cat_p 
    ON cat_p.id_product = cat.id_product
WHERE 
    cat_p.type LIKE '%all%' 
    AND cat_p.rank <= 16
GROUP BY 
    cat.cat_id, cat.name
ORDER BY 
    cat.cat_id ASC;

语句细节解释

  • INNER JOIN:确保只统计两张表中都存在的product_id,完美匹配你“统计表ONE中存在于表TWO的product_id”的要求。
  • GROUP BY cat.cat_id, cat.name:按照cat_id和name分组,从你的示例数据能看出同一个cat_id对应的name是唯一的,这样就能保证每个分组里name只显示一次。
  • SUM(cat_p.amount):对每个分组下的所有amount值求和,直接得到该分类的总金额。
  • WHERE条件:保留了你原来需求中的过滤规则,只统计type包含"all"且rank不超过16的记录。

预期输出结果

执行这条语句后,你会得到和期望完全一致的结果:

+---------+--------+--------------+
| cat_id  | name   | total_amount |
+---------+--------+--------------+
| 1       | w      | 210          |
| 2       | y      | 90           |
| 3       | t      | 30           |
+---------+--------+--------------+

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:27:51