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

如何将多列求和结果按单独行返回?适配Superset图表需求

解决方案:将宽表转置为Superset适配的长表结构

通用兼容方案(支持所有SQL数据库)

用UNION ALL拆分并求和目标列,是兼容性最强的写法:

SELECT 'CostA' AS type, SUM(CostA) AS totals
FROM your_table_name
UNION ALL
SELECT 'CostB' AS type, SUM(CostB) AS totals
FROM your_table_name
UNION ALL
SELECT 'CostC' AS type, SUM(CostC) AS totals
FROM your_table_name;

这段SQL会分别计算CostA、CostB、CostC的总和,再将三个结果合并成两行结构,完全匹配你需要的type(成本类型)和totals(合计值)列。

数据库原生简化方案(部分数据库支持)

如果你的数据库支持UNPIVOT语法(如MySQL 8.0+、SQL Server、Oracle、PostgreSQL 14+),可以用更简洁的写法:

SELECT type, SUM(total) AS totals
FROM your_table_name
UNPIVOT (
  total FOR type IN (CostA, CostB, CostC)
) AS unpivoted_data
GROUP BY type;

这个写法先把宽表转置为长表(将CostA/CostB/CostC转为行),再按类型分组求和,结果和通用方案一致,但代码更紧凑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:15:00