【发布时间】:2020-08-18 22:47:13
【问题描述】:
这个问题是这个问题的延伸:BigQuery check entire table for null values
我是 BigQuery 的新手。我有一张大桌子,想避免约 150 个ifnull 电话。但是,一些未嵌套的列名称是相同的,并且没有使用上述问题的答案正确处理它们。这是数据字段的示例
itemId
extension.new.name
extension.new.location
extension.old.name
extension.default
extension.category
...
链接问题的解决方案是:
#standardSQL
SELECT col_name, COUNT(1) nulls_count
FROM `project.dataset.table` t,
UNNEST(REGEXP_EXTRACT_ALL(TO_JSON_STRING(t), r'"(\w+)":null')) col_name
GROUP BY col_name
我得到的结果有点如下:
col_name nulls_count
name 5
location 8
default 3
category 7
...
但是由于 group by,此解决方案将 extension.new.name 和 extension.old.name 视为相同,但我希望每个单独的计数为空:
col_name nulls_count
extension.new.name 5
extension.new.location 8
extension.old.name 10
extension.default 3
extension.category 7
是否可以使用未嵌套的计数来获取嵌套的列名?我不确定是否有办法捕获整个名称并将它们连接起来?
【问题讨论】:
标签: google-bigquery