首页 > 解决方案 > 根据条件将多条记录合并为一条

问题描述

如果多个记录中的所有其他值都相同,除了 product_code,我想将每个 product_code(逗号分隔)组合在一个条目/记录中

数据集如下所示 -

category_id subcat_id  product_code customer_id  quantity   value
   123        456        AB            111          2         1
   123        456        CD            111          2         1
   123        789        AB            111          2         2
   123        789        CD            111          2         2

结果应该看起来像 -

category_id subcat_id  product_code   customer_id    quantity   value
   123        456        AB,CD             111          2         1
   123        789        AB,CD             111          2         2

标签: sqlgoogle-bigquery

解决方案


使用string_agg()

select category_id, subcat_id, customer_id, quantity, value,
       string_agg(product_code, ',')
from t
group by category_id, subcat_id, customer_id, quantity, value;

也就是说,我推荐使用数组而不是字符串来存储这些值。


推荐阅读