You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Athena SQL:按指定维度分区并拼接行去重值的问题咨询

Athena中ARRAY_AGG按customer_id和date_range聚合问题解决

问题排查与解决步骤

  1. 校验分组维度的一致性
    先执行以下查询,确认customer_id和date_range的分组是否符合预期:
SELECT customer_id, date_range, COUNT(*) AS row_count
FROM your_table
GROUP BY customer_id, date_range
ORDER BY customer_id, date_range

如果同一个逻辑分组(比如相同customer_id和日期范围)被拆分成多行,大概率是date_range字段存在格式问题:

  • 字符串类型的date_range可能有空格、大小写差异或格式不统一(比如2024-01和2024.01);
  • 如果是时间戳类型,可能包含时分秒导致同一日期被拆分为多个分组。
  1. 修正分组逻辑
    针对date_range格式问题,统一格式后再分组,同时优化聚合逻辑:
SELECT 
    customer_id,
    -- 字符串类型做去空格清洗;时间戳类型替换为DATE(date_range)提取纯日期
    TRIM(date_range) AS date_range,
    -- 给ARRAY_AGG加排序让结果有序,同时忽略null值
    ARRAY_JOIN(ARRAY_DISTINCT(ARRAY_AGG(product ORDER BY product IGNORE NULLS)), ', ') AS concatenated_products
FROM your_table
GROUP BY customer_id, TRIM(date_range)
ORDER BY customer_id, date_range
  1. 验证结果
    执行修正后的语句,对比分组计数的结果,确认每个customer_id + date_range组合仅返回一行,且concatenated_products正确拼接了对应分组下的去重产品名称。

内容的提问来源于stack exchange,提问作者Angel Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 23:13:08