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

SQL分组透视查询问题:如何将两行结果合并为一行?

解决方案:将多行查询结果合并为单行

你需要在CASE表达式外层使用聚合函数(比如MAX或MIN),配合GROUP BY product来合并结果,这样就能保留所有非null的vendor值,避免数据丢失。

修改后的SQL查询:

SELECT product,
       MAX(CASE WHEN fee_type = 'fee_typeX' THEN vendor ELSE NULL END) AS vendorX,
       MAX(CASE WHEN fee_type = 'fee_typeY' THEN vendor ELSE NULL END) AS vendorY
FROM a
GROUP BY product;

原理说明:

原始查询中,每个product对应的两行数据里,vendorX和vendorY分别只有一个非null值。MAX()(或MIN())聚合函数会自动忽略null值,提取每个分组(按product分组)下对应的有效vendor值,最终将两行数据合并为一行,同时保留vendorX和vendorY的所有数据。

执行后得到的结果:

productvendorXvendorY
ProductAXY

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:05:23