如何在大查询中将多行组合成一行?

时间:2018-04-16 19:37:45

标签: google-bigquery

我的表格中包含以下数据:

bank | user  | chqno | chqdated    | Amount |
ban1 | user1 | 11111 | 12.12.2017  | 200    |
ban1 | user1 | 11111 | 12.12.2017  | 300    |
ban1 | user2 | 22332 | 12.12.2017  | 300    |

对于输出我想得到这样的东西:

bank | user  | chqno | chqdated    | Amount |           
ban1 | user1 | 11111 | 12.12.2017  | 500    |
ban1 | user2 | 22332 | 12.12.2017  | 300    |

我尝试了一些查询,但数据不断重复而没有正确添加。有什么建议,如何处理这个问题?

1 个答案:

答案 0 :(得分:1)

下面的示例适用于BigQuery Standard SQL

  
#standardSQL
WITH `project.dataset.your_table` AS (
  SELECT 'ban1' bank, 'user1' user, '11111' chqno, '12.12.2017' chqdated, 200 Amount UNION ALL
  SELECT 'ban1', 'user1', '11111', '12.12.2017', 300 UNION ALL
  SELECT 'ban1', 'user2', '22332', '12.12.2017', 300 
)
SELECT bank, user, chqno, chqdated, SUM(Amount) Amount
FROM `project.dataset.your_table`
GROUP BY bank, user, chqno, chqdated

结果为

Row bank    user    chqno   chqdated    Amount   
1   ban1    user1   11111   12.12.2017  500  
2   ban1    user2   22332   12.12.2017  300