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

Athena/Presto统计ROW类型字段条目数的SQL实现方法

解决方案

你可以通过将ROW类型的records字段转为JSON,再统计JSON根节点的元素数量实现需求。

场景1:单device_id+date对应单行记录

如果你的表中每个device_id + date组合仅对应唯一一行数据,使用以下SQL:

SELECT 
    device_id,
    date,
    json_size(CAST(records AS JSON), '$') AS recordsNb
FROM "default"."table"
-- 可按需添加WHERE过滤条件
WHERE date = '2021-07-24'

场景2:单device_id+date对应多行记录

如果同一个device_id + date组合存在多条数据,需要汇总所有行的records条目总数,使用以下SQL:

SELECT 
    device_id,
    date,
    SUM(json_size(CAST(records AS JSON), '$')) AS recordsNb
FROM "default"."table"
GROUP BY device_id, date
-- 可按需添加过滤条件

说明

json_size函数会返回指定JSON路径下的元素数量,这里指定$根路径,刚好对应records转换为JSON后的顶层键的数量,也就是你需要的records条目数。
如果尝试将records直接转为MAP统计长度,会因为子ROW的结构不一致触发类型匹配错误,因此转为JSON统计的方案适配性更高。

内容的提问来源于stack exchange,提问作者Quentin Del

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:15:04