簡體   English   中英

比較 2 個表並使用具有最大值 Bigquery 的行更新最終表

[英]Compare 2 tables and update final table with the row which has max value Bigquery

我有兩個表TableAFinal_Table

表A

ID  Step1   Step2   Step3 Step4
1    1       1       0     0   --Update Final_table for Id1 with these values as more steps have 1
2    1       1       1     0
3    1       1       1     1   --Since 3 doesn't exist in Final table insert row in final table 

決賽桌

   ID  Step1   Step2   Step3 Step4
   1    1       0       0     0
   2    1       1       1     1 --Keep this as more steps have 1 in it
   4    0       0       0     0 --since Id4 doesn't exist in Table  

運行查詢后,我希望 final_table 如下所示

決賽桌

   ID  Step1   Step2   Step3 Step4
   1    1       1       0     0
   2    1       1       1     1
   3    1       1       1     1
   4    0       0       0     0

每當兩個表中都存在 Id 時,我想用最大步長為 1 的數據更新 Final_Table。我將不勝感激任何幫助!提前致謝

我使用 Merge 和 Update 來解決我的問題 - 它的工作就像一個魅力。 我在 Final_Table 中創建了所有步驟的 sumT 列。 可能會幫助某人

第一個查詢:

MERGE final_Table T
USING (SELECT id, SUM(of all columns) AS sumA 
       FROM TableA 
       GROUP BY Id FROM TableA) S ON T.id = S.id

WHEN MATCHED THEN
   UPDATE SET sum = greatest(sumA, sumT)

WHEN NOT MATCHED THEN 
   INSERT (id, sumT) VALUES (id,sumA)

第二個查詢:

UPDATE Final_Table AS 1 OR 0 depending on SumT

希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM