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

Snowflake表json列不含Ready_前缀键的记录计数及按部门分组问题

Snowflake JSON指定前缀键不存在记录统计方案

实现逻辑

  • 用OBJECT_KEYS()内置函数提取DETAILS列所有顶层JSON键,返回数组格式
  • 通过FLATTEN()表函数拆分数组为单键行,判断是否存在以Ready_为前缀的键
  • 过滤所有存在匹配键的记录后,按部门维度分组统计计数

正确查询语句

SELECT 
    DEPARTMENT_NAME,
    COUNT(*) AS NO_READY_PREFIX_RECORD_COUNT
FROM 
    -- 替换为你的实际表名
    YOUR_EMP_TABLE t
WHERE 
    -- 筛选不存在任何Ready_前缀键的记录
    NOT EXISTS (
        SELECT 1 
        FROM TABLE(FLATTEN(input => OBJECT_KEYS(t.DETAILS))) k
        WHERE STARTSWITH(k.value::STRING, 'Ready_')
    )
GROUP BY 
    DEPARTMENT_NAME;

补充说明

如果你的业务场景中Ready_前缀的键可能出现在JSON的嵌套层级中,可将FLATTEN部分修改为递归模式:TABLE(FLATTEN(input => t.DETAILS, recursive => TRUE)),同时判断条件改为STARTSWITH(k.key::STRING, 'Ready_')即可。
之前的查询计数错误通常是两个原因导致:要么仅校验了部分指定的Ready_前缀键,遗漏了其他同前缀键;要么存在性判断逻辑写反,误将包含符合前缀键的记录也计入结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 08:51:02