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

如何将两次SQL查询结果合并为单行展示全部目标列?

实现方法

要把两组数据合并到同一行,根据你的数据场景(每个年份对应唯一一行数据),有两种实用方案可选:

方案1:直接JOIN两个子查询

既然year=25和year=26各自仅返回一行数据,直接将两个查询结果作为表进行连接,就能得到单行的合并结果:

SELECT a.jul, a.aug, a.sep, b.oct, b.nov, b.dec
FROM (
    SELECT jul, aug, sep
    FROM table_A
    WHERE site = 'NY' AND year = 25
) a
CROSS JOIN (
    SELECT oct, nov, dec
    FROM table_A
    WHERE site = 'NY' AND year = 26
) b;

方案2:用聚合函数合并UNION后的结果

如果后续数据可能出现多行,但你需要把对应列的非NULL值合并到一行,可以用MAX()(或MIN(),只要非NULL值唯一)函数对UNION后的结果做聚合:

SELECT 
    MAX(jul) AS jul, 
    MAX(aug) AS aug, 
    MAX(sep) AS sep, 
    MAX(oct) AS oct, 
    MAX(nov) AS nov, 
    MAX(dec) AS dec
FROM (
    SELECT jul, aug, sep, NULL AS oct, NULL AS nov, NULL AS dec
    FROM table_A
    WHERE site = 'NY' AND year = 25
    UNION ALL
    SELECT NULL AS jul, NULL AS aug, NULL AS sep, oct, nov, dec
    FROM table_A
    WHERE site = 'NY' AND year = 26
) t;

这里用UNION ALL代替UNION,避免不必要的去重操作,提升查询效率。

最终结果

执行上述任意一种SQL,都会得到你期望的单行输出:

julaugsepoctnovdec
212322222120

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 04:40:04