You need to enable JavaScript to run this app. 如何将品牌转为列名完成行转列并筛选同组耐克最高价格行
优惠活动
大模型
产品
解决方案
定价
更多

如何将品牌转为列名完成行转列并筛选同组耐克最高价格行

数据处理实现方案

需求拆解

  • 长表转宽表:以原始表中Brand列的所有取值为列名生成宽表,转换全程不使用聚合函数,无对应匹配值的单元格用NULL填充
  • 数据筛选:对生成的宽表,按Month、Region、Category、Size四个字段分组,筛选出组内Nike价格高于同组其他所有品牌价格的行

输入原始明细数据

MonthRegionCategorySizeBrandPrice
JanuaryCanadaT-shirtsSNike100
JanuaryCanadaT-shirtsSReebok150
JanuaryCanadaT-shirtsSPuma200
JanuaryCanadaJacketSNike200
JanuaryCanadaJacketSReebok300
JanuaryUSAJacketLPuma400
JanuaryUSAJacketLReebok500

无聚合行转列实现步骤

由于每个(Month、Region、Category、Size)维度组合下,每个品牌仅对应一条价格记录,不存在重复值,因此全程不需要使用SUM、MAX等聚合函数,直接通过等值关联完成列转换:

  1. 先提取所有维度字段的唯一组合,作为宽表的基础行集合,避免产生重复行
  2. 逐次关联原始明细表,每次仅匹配单一品牌的价格数据作为新列值:
    • 关联原始表中Brand='Nike'的记录,取对应Price作为Nike列的值
    • 关联原始表中Brand='Reebok'的记录,取对应Price作为Reebok列的值
    • 关联原始表中Brand='Puma'的记录,取对应Price作为Puma列的值
  3. 关联过程中无匹配的单元格自动填充为NULL,最终生成的宽表结构如下:
MonthRegionCategorySizeNikeReebokPuma
JanuaryCanadaT-shirtsS100150200
JanuaryCanadaJacketS400300NULL
JanuaryUSAJacketLNULL500400

筛选逻辑实现

按照要求逐行判断筛选条件:

筛选规则:同一维度组内,只要Nike的价格数值大于其他所有非NULL的品牌价格数值,就保留该行;如果Nike本身为NULL则直接排除,其他品牌的NULL值不参与比较
逐行校验结果:

  • 第一行(Canada/T-shirts/S):Nike价格100,低于同组Reebok150、Puma200,不满足条件,排除
  • 第二行(Canada/Jacket/S):Nike价格400,高于同组Reebok300,Puma为NULL不参与比较,满足条件,保留
  • 第三行(USA/Jacket/L):Nike价格为NULL,直接排除

最终筛选输出结果:

MonthRegionCategorySizeNikeReebokPuma
JanuaryCanadaJacketS400300NULL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 15:24:01