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

如何基于示例表编写SQL查询以生成指定输出?

解决方案

首先咱们先拆解清楚需求里的两个核心计算逻辑:

  • sum(transcount) 是 table1中所有count字段的总和(也就是5+10+5=15),每个teamid对应的这个值都是固定不变的
  • sum(amount) 是 table2中每个teamid对应的amount字段之和

基于这个逻辑,我给你两种写法,都能得到预期的输出:

方式一:用子查询直接获取总计数

这种写法比较简洁,适合逻辑简单的场景:

SELECT
    (SELECT SUM(count) FROM table1) AS sum_transcount,
    SUM(t2.amount) AS sum_amount,
    t2.teamid
FROM table2 t2
GROUP BY t2.teamid;

方式二:用CTE拆分逻辑(可读性更强)

如果后续需要扩展逻辑,用CTE(公共表表达式)会让代码结构更清晰:

WITH total_table1_count AS (
    -- 先单独计算table1的总count值
    SELECT SUM(count) AS sum_transcount FROM table1
)
SELECT
    ttc.sum_transcount,
    SUM(t2.amount) AS sum_amount,
    t2.teamid
FROM table2 t2
-- 总计数只有一行,交叉连接会把这个值自动关联到每个teamid分组
CROSS JOIN total_table1_count ttc
GROUP BY t2.teamid, ttc.sum_transcount;

结果验证

执行任意一种写法,都会得到和你预期完全匹配的输出:

sum_transcountsum_amountteamid
15131
15142

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 12:42:33