根据 Google Big Query 中的案例分组和求和

Group by and sum depending on cases in Google Big Query

数据看起来像-

A_value      B_value    C_value     Type
   1          null        null       A
   2          null        null       A
  null         3          null       B
  null         4          null       B
  null        null         5         C
  null        null         6         C

当类型为 'A' 我想对 'A_value' 求和并存储在另一个名为 'Type_value' 的列中,当类型为 'B' 我想对 'B_value' 并存储在 'Type_value' 列中,并为 'C'

做类似的事情

预期结果-

Type_value      Type
    3            A
    7            B
    11           C

如何实现这个结果?

以下适用于 BigQuery 标准 SQL

#standardSQL
SELECT SUM(CASE Type
    WHEN 'A' THEN A_value
    WHEN 'B' THEN B_value
    WHEN 'C' THEN C_value
    ELSE 0
  END) AS Type_value, Type 
FROM `project.dataset.table`
GROUP BY Type   

如果应用于您问题中的样本数据 - 结果是

Row Type_value  Type     
1   3           A    
2   7           B    
3   11          C    

另一个可能的选择是重用这样一个事实,即您的数据具有仅在相应列中具有价值的模式。所以如果它是真的 - 你可以使用以下版本

#standardSQL
SELECT SUM(IFNULL(A_value, 0) + IFNULL(B_value, 0) + IFNULL(C_value, 0)) AS Type_value, Type 
FROM `project.dataset.table`
GROUP BY Type   

显然结果相同