给出:表示作为查询结果选择的数组字段的 json 字符串。
如何找出Big Query中JSON数组字段的长度?
如果它对像我这样今天寻找答案的人可能有用: 我将 MySQL 中的
JSON_LENGTH(json_string, json_path)
方法替换为 BigQuery 中的 ARRAY_LENGTH(JSON_EXTRACT_ARRAY(json_string, json_path)
。
看看这是否符合您的要求。它使用 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]');
以下示例适用于 BigQuery 标准 SQL
#standardSQL
SELECT ARRAY_LENGTH(SPLIT('[1,3,5,7]'))
尝试一下!它查找字符串的开始/结束双引号计数。这对我来说非常有用。
SELECT
ARRAY_LENGTH(REGEXP_EXTRACT_ALL(TO_JSON_STRING(my_json_column), r'"([^"]+)"')) AS key_count
FROM my_dataset.my_table