大查询中json数组字段的长度

问题描述 投票:0回答:4

给出:表示作为查询结果选择的数组字段的 json 字符串。

如何找出Big Query中JSON数组字段的长度?

google-bigquery
4个回答
8
投票

如果它对像我这样今天寻找答案的人可能有用: 我将 MySQL 中的

JSON_LENGTH(json_string, json_path)
方法替换为 BigQuery 中的
ARRAY_LENGTH(JSON_EXTRACT_ARRAY(json_string, json_path)


5
投票

看看这是否符合您的要求。它使用 JavaScript UDF 解析 JSON,然后返回数组长度。

#standardSQL
CREATE TEMP FUNCTION JsonArrayLength(json_array STRING)
RETURNS INT64 LANGUAGE js AS """
var arr = JSON.parse(json_array);
return arr.length;
""";

SELECT JsonArrayLength('[1,3,5,7]');

1
投票

以下示例适用于 BigQuery 标准 SQL

#standardSQL
SELECT ARRAY_LENGTH(SPLIT('[1,3,5,7]'))    

0
投票

尝试一下!它查找字符串的开始/结束双引号计数。这对我来说非常有用。

SELECT 
    ARRAY_LENGTH(REGEXP_EXTRACT_ALL(TO_JSON_STRING(my_json_column), r'"([^"]+)"')) AS key_count
FROM my_dataset.my_table
© www.soinside.com 2019 - 2024. All rights reserved.