BigQuery中的數不正確,我用下面的查詢來獲取每日活躍用戶數:Android上的日活躍用戶在BigQuery中
`
#legacySQL
SELECT
user_dim.app_info.app_platform as appPlatform,
event_dim.date as eventDate,
COUNT(DISTINCT user_dim.app_info.app_instance_id) as daily_active_users
FROM
TABLE_QUERY([table_name], 'table_id CONTAINS "app_events_"'),
TABLE_QUERY([table_name], 'table_id CONTAINS "app_events_"')
GROUP BY
appPlatform, eventDate
ORDER BY
appPlatform, eventDate
`
的結果這個具體日期的查詢是534 users for Android and 142 users for IOS。
但Firebase顯示,今天只有209個活躍的Android用戶。 這個數字是正確的,因爲我可以將它與來自Appsee的數據進行比較。 對於IOS,Firebase返回的數字與我在BigQuery中的查詢完全相同。
我的查詢出了什麼問題,我該如何解決這個問題?
我試圖寫在標準的SQL查詢,以及: `
#standardSQL
SELECT
event.date as date,
COUNT(DISTINCT user_dim.app_info.app_instance_id) AS daily_visitors
FROM `table.table.app_events_*`
CROSS JOIN UNNEST(event_dim) AS event
GROUP BY date
ORDER BY date DESC
` 但此查詢的結果是完全一樣前面提到的一個:534每天的用戶,而不是對於Android的209,正確的IOS號碼。
所以,我認爲問題在於我誤解了內部FB/BQ機制。
請幫我弄清楚問題的根源。
部分原因是'COUNT(DISTINCT ...)'使用傳統SQL時只是一個近似值。 –
Elliott指出,你也可以嘗試使用'EXACT_COUNT_DISTINCT'而不是'COUNT(DISTINCT)'。不過,是否有任何理由不使用標準版本的BQ? –
對我而言,COUNT(DISTINCT)和EXACT_COUNT_DISTINCT的結果相同。 你是說「BQ的標準版」是什麼意思?標準SQL? 當我使用COUNT(DISTINCT)或EXACT_COUNT_DISTINCT時,我擁有與Firebase相同數量的IOS用戶。但是對於Android用戶來說,結果比FB中的要高2倍以上。 – Vlad