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

如何在SQL中分别按title和link聚合price并返回关联结果?

解决方法

假设你的业务表名为goods,核心字段包含title、link、price,这里提供两种可直接复用的SQL实现方案:

方案1:子查询关联法

先分别计算每个title的总价格、每个link的总价格,再通过关联将聚合结果映射到每条唯一的title-link记录上:

SELECT 
    DISTINCT g.title,
    g.link,
    tp.title_price,
    lp.link_price
FROM 
    goods g
INNER JOIN (
    -- 按title维度计算总价格
    SELECT title, SUM(price) AS title_price
    FROM goods
    GROUP BY title
) tp ON g.title = tp.title
INNER JOIN (
    -- 按link维度计算总价格
    SELECT link, SUM(price) AS link_price
    FROM goods
    GROUP BY link
) lp ON g.link = lp.link;

方案2:窗口函数法(更简洁高效)

利用窗口函数直接在原表上计算分组聚合值,无需额外关联子查询,同时用DISTINCT确保返回的title-link组合唯一:

SELECT 
    DISTINCT title,
    link,
    SUM(price) OVER (PARTITION BY title) AS title_price,
    SUM(price) OVER (PARTITION BY link) AS link_price
FROM 
    goods;

关于你之前遇到的问题说明

直接用GROUP BY title, link只能得到当前title-link组合的价格总和,无法获取整个title或link维度的全局聚合值。子查询报错通常是因为关联条件不匹配、子查询别名冲突,或者未处理重复记录导致的逻辑错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 01:20:24