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

如何在AWS Athena中从数据表生成二进制矩阵?

在AWS Athena中生成二进制矩阵的实现方法

可以在AWS Athena中通过SQL的条件聚合(行转列)操作实现这种二进制矩阵转换,以下是具体方案:

原始数据表

nameproduct
JohnBike
JohnShirt
JohnBall
BlakeShirt
MikeBall
MikeHat

目标二进制矩阵

nameBikeShirtBallHat
John1110
Blake0100
Mike0011

实现SQL语句

SELECT
  name,
  MAX(CASE WHEN product = 'Bike' THEN 1 ELSE 0 END) AS Bike,
  MAX(CASE WHEN product = 'Shirt' THEN 1 ELSE 0 END) AS Shirt,
  MAX(CASE WHEN product = 'Ball' THEN 1 ELSE 0 END) AS Ball,
  MAX(CASE WHEN product = 'Hat' THEN 1 ELSE 0 END) AS Hat
FROM
  your_table_name -- 替换为你的实际表名
GROUP BY
  name
ORDER BY
  name;

逻辑说明

  • 利用CASE WHEN对每个产品进行判断:如果用户拥有该产品则返回1,否则返回0
  • 通过MAX聚合函数配合GROUP BY name,将每个用户的多条记录合并为一行,得到对应的二进制标记
  • 若产品列表是动态变化的,Athena本身不支持直接生成动态列,可先查询所有唯一产品:
    SELECT DISTINCT product FROM your_table_name;
    
    再根据查询结果拼接生成完整的SQL语句执行。

内容的提问来源于stack exchange,提问作者Momchil Vasilev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:09:18