[英]Google BigQuery: UNNEST where each different key becomes a column
[英]Different results UNNEST BigQuery
我不明白這些查詢之間的區別是什么:
SELECT event_timestamp ,user_pseudo_id, value.double_value as tax
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`, UNNEST(event_params) as event_params
WHERE event_name = "purchase" and event_params.key = "tax"
另一個查詢是:
SELECT event_timestamp ,user_pseudo_id,
(SELECT value.double_value FROM UNNEST(event_params) WHERE key = "tax") as tax
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE event_name = "purchase"
在第一個查詢中,我得到 5.242 個寄存器,在第二個查詢中得到 5.692 個。 錯誤是什么?
謝謝!
這取決於您將什么定義為准確。 行數不匹配的原因是處理稅字段的方式。 您可以通過運行以下查詢來查看差異:
with unnested as (
SELECT event_timestamp ,user_pseudo_id, value.double_value as tax
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`, UNNEST(event_params) as event_params
WHERE event_name = "purchase" and event_params.key = "tax"
)
SELECT events.event_timestamp ,events.user_pseudo_id,
(SELECT value.double_value FROM UNNEST(event_params) WHERE key = "tax") as tax
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*` events
LEFT JOIN unnested un
on events.event_timestamp=un.event_timestamp
and events.user_pseudo_id=un.user_pseudo_id
WHERE events.event_name = "purchase"
and un.event_timestamp is null
;
如果您從該列表中挑選出一條記錄並使用以下兩個查詢進行調查:
SELECT *
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`, UNNEST(event_params) as event_params
WHERE 1=1
-- and event_name = "purchase" and event_params.key = "tax"
and event_name = "purchase" and event_timestamp=1608955242902332 and user_pseudo_id='43627350.3807676886';
SELECT
*,
(SELECT value.double_value FROM UNNEST(event_params) WHERE key = "tax") as tax
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*` events
WHERE events.event_name = "purchase"
and event_timestamp=1608955242902332 and user_pseudo_id='43627350.3807676886'
;
第一個查詢從最終集中過濾掉沒有稅字段的記錄,而第二個查詢返回具有 null 稅值的記錄。 如果注冊的號碼取決於稅字段中值的存在,則 5242 值是正確的號碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.