Created
November 26, 2021 03:04
-
-
Save antoniocachuan/3d0c4683b10ae8c14f3ef5b63ad6c05b to your computer and use it in GitHub Desktop.
Merge
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
MERGE INTO reporting.transaction_model A | |
USING ( | |
SELECT transaction_id, transaction_date, price, store_name, last_updated | |
FROM | |
EXTERNAL_QUERY | |
( | |
"projects/datapath/locations/us/connections/databaseconnection", | |
"SELECT CAST(transaction_id AS VARCHAR(100)), store_name, transaction_date, price, last_updated FROM public.transaction WHERE transaction_date BETWEEN NOW() - INTERVAL '2 DAY' AND NOW();" | |
) | |
) B | |
ON A.transaction_id = CAST(B.transaction_id as STRING) | |
AND A.transaction_date BETWEEN TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -2 DAY) AND CURRENT_TIMESTAMP() | |
WHEN MATCHED THEN UPDATE SET | |
A.price = B.price, | |
A.store_name = B.store_name, | |
A.last_updated = CURRENT_TIMESTAMP() | |
WHEN NOT MATCHED THEN INSERT (transaction_id, store_name, transaction_date, price, last_updated) | |
VALUES (cast(transaction_id as STRING), store_name, CAST(transaction_date AS TIMESTAMP), price, CAST(last_updated AS TIMESTAMP)); | |
END; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment