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

SQL中如何为行单元格设置别名,生成自定义标签聚合表?

为输出表格行单元格设置自定义别名的实现方法

问题场景

原始输入表格:

BasketballBaseballGolfCost
100$50
010$75
101$150
011$225

期望输出表格:

SportCost
Basketball200
Baseball300
Golf375

已完成各运动成本总和的计算,但需要为输出表的Sport列行单元格设置对应运动名称的自定义别名。


不同工具的实现方式

1. SQL 实现

通过UNION ALL构造每行数据,直接指定运动名称作为行单元格的别名:

SELECT 'Basketball' AS Sport, SUM(CASE WHEN Basketball = 1 THEN Cost ELSE 0 END) AS Cost
FROM your_table
UNION ALL
SELECT 'Baseball' AS Sport, SUM(CASE WHEN Baseball = 1 THEN Cost ELSE 0 END) AS Cost
FROM your_table
UNION ALL
SELECT 'Golf' AS Sport, SUM(CASE WHEN Golf = 1 THEN Cost ELSE 0 END) AS Cost
FROM your_table;

这里的'Basketball'等字符串就是直接设置的行单元格别名,和列别名的设置逻辑一致,只是将固定值作为列的内容返回。

2. Excel/Google Sheets 实现

  • 第一步:在空白区域的Sport列手动填入自定义别名(Basketball、Baseball、Golf);
  • 第二步:用SUMIFS函数计算对应总成本:
    • Basketball行成本公式:=SUMIFS(D:D,A:A,1)(假设原始表格Cost列在D列,Basketball列在A列)
    • Baseball行成本公式:=SUMIFS(D:D,B:B,1)
    • Golf行成本公式:=SUMIFS(D:D,C:C,1)

3. Python(Pandas)实现

提取运动列名,循环计算总成本后构造新表,将运动名称直接作为行单元格别名:

import pandas as pd

# 加载原始数据
df = pd.DataFrame({
    'Basketball': [1, 0, 1, 0],
    'Baseball': [0, 1, 0, 1],
    'Golf': [0, 0, 1, 1],
    'Cost': [50, 75, 150, 225]
})

# 构造输出数据
sport_list = ['Basketball', 'Baseball', 'Golf']
output_data = []
for sport in sport_list:
    total = df[df[sport] == 1]['Cost'].sum()
    output_data.append({'Sport': sport, 'Cost': total})

output_df = pd.DataFrame(output_data)
print(output_df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:25:29