题目描述:
计算一个二维表进行行列转换后的结果,聚合方式为求和。
行列转换定义:以一列数据作为主键,一列数据作为转换列,一列数据作为指标列。将去重后的转换列的值转换到维度,将指标列数据以主键标识聚合到对应的转换维度下。
以下便是以姓名为主键,科目为转换列,成绩为指标列的简单行列转换示例:
张三 0606 语文 78
张三 0607 数学 92
李四 0606 语文 85
行列转换后:
张三 0606 78 92
李四 0606 85 -1
注1:行按照主键值进行升序排列,列的部分,先按原始顺序输出除去转换列与指标列之外的其他所有列,然后输出新增列,新增列顺序按转换值进行升序排列。
注2:同主键,同转换值对应多个指标值的情况下,对此多个指标值进行求和。
注3:一个主键,对应的非特殊列(非主键列,非转换列,非指标列)值存在多个的情况下,输出时取原始数据中,主键对应此非特殊列的第一个值。
注4:主键不对应某些转换值的情况,例如描述案例中 李四的数学成绩,输出-1。