group-by - 根据 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
显然具有相同的结果
推荐阅读
- lua - (gLua) 真皮不工作。尝试调用方法“关闭”(零值)
- react-native - React 原生 Flat 列表优化
- mongodb - 用于日期比较的 mongodb 过滤器
- visual-studio-code - VSCode 无法将 SSH 连接到树莓派 4
- kubernetes - kubectl 执行 -it
获取 sh:无法打开“导出”:没有这样的文件或目录 - excel - excel vba - 硒查找元素
- javascript - 将使用 CDN 链接创建的 React App 导入 App.js 时出现“未捕获的 ReferenceError:require is not defined”
- huawei-mobile-services - 应用程序被杀死或在后台时不会出现华为 PushKit 通知
- reactjs - 一个组件中的 React.js onclick 按钮更改其他组件中的效果
- r - 具有相似名称的多个数据框