BigQuery/SQL:如何基于两列消除重复数据
BigQuery去除双向重复商品组合的SQL方案
方法一:利用DISTINCT + LEAST/GREATEST生成唯一组合
通过LEAST()和GREATEST()函数将一对SKU按固定顺序排列,再用DISTINCT去重:
SELECT DISTINCT LEAST(original_SKU, bought_with) AS sku1, GREATEST(original_SKU, bought_with) AS sku2, quantity FROM your_table_name;
说明:LEAST()返回两个SKU中字典序更小的那个,GREATEST()返回更大的,这样双向的重复组合会被统一为同一组,DISTINCT就能过滤掉重复行。
方法二:GROUP BY分组聚合
如果需要对其他字段做聚合操作,或者更明确地分组去重,可以用GROUP BY:
SELECT LEAST(original_SKU, bought_with) AS sku1, GREATEST(original_SKU, bought_with) AS sku2, quantity FROM your_table_name GROUP BY sku1, sku2, quantity;
说明:通过分组统一后的sku1和sku2,自动合并重复的组合行,由于重复行的quantity值一致,直接包含在GROUP BY中即可。
内容的提问来源于stack exchange,提问作者laosnd
相关产品推荐
相关产品推荐

