2017-05-12 180 views
0

在標準SQL方言中,我運行以下查詢返回到max,但結果返回錯誤(請參見下面的截圖)。說明?Google BigQuery max()返回錯誤結果

SELECT 
    oi.customer_ead_to, 
    MAX(oi.customer_ead_to) OVER (PARTITION BY oi.order_id) max_customer_ead_to 
FROM `rawData.order` o, 
UNNEST (items) oi 
WHERE oi.order_id = 3689393 

Screenshot: The query returns a wrong Max of 5

+0

我不能瑞普這一點 - 你可以共享作業ID和項目ID此查詢 –

+0

專案編號:lesara-DWH。 JobId:lesara-dwh:bquijob_50ed7990_15bfd3aab22 –

回答

0

這是最有可能發生的情況。 customer_ead_to未定義爲數字類型(FLOATINTEGER),而是定義爲STRING。字符串有按字母順序排列的比較規則,並且這是爲什麼「5」最大。你可以改變你的查詢轉換爲整數類型

SELECT 
    oi.customer_ead_to, 
    MAX(CAST(oi.customer_ead_to AS INT64)) 
    OVER (PARTITION BY oi.order_id) max_customer_ead_to 
FROM `rawData.order` o, 
UNNEST (items) oi 
WHERE oi.order_id = 3689393