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

Athena中如何提取并统计payload字段内所有数组键及其出现次数

实现方案

你当前可直接用payload.keyname提取字段值,说明所用数据库支持半结构化数据(结构体/JSON类型)查询,核心实现逻辑是先把每行payload的所有键转为数组,再把数组拆为多行,最后分组统计即可,不同主流数据库的写法如下:


Spark SQL / Databricks 写法

SELECT 
  key,
  COUNT(*) AS Count
FROM 
  Database
  LATERAL VIEW EXPLODE(MAP_KEYS(payload)) AS key
-- 此处添加日期过滤条件,例如 WHERE dt >= '2024-01-01' AND dt <= '2024-01-31'
GROUP BY 
  key
ORDER BY 
  Count DESC

BigQuery 写法

SELECT 
  key,
  COUNT(*) AS Count
FROM 
  `你的项目名.你的数据集名.Database`,
  UNNEST(JSON_KEYS(payload)) AS key
-- 此处添加日期过滤条件,例如 WHERE date_column BETWEEN '2024-01-01' AND '2024-01-31'
GROUP BY 
  key
ORDER BY 
  Count DESC

Snowflake 写法

SELECT 
  KEY AS Key,
  COUNT(*) AS Count
FROM 
  Database,
  LATERAL FLATTEN(input => OBJECT_KEYS(payload))
-- 此处添加日期过滤条件,例如 WHERE date_column BETWEEN '2024-01-01' AND '2024-01-31'
GROUP BY 
  KEY
ORDER BY 
  Count DESC

提示:你示例期望输出里的game应为笔误,匹配你给出的示例数据统计出来的对应键是gameid,计数为3。

内容的提问来源于stack exchange,提问作者Dick McManus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:54:08