簡體   English   中英

從雅典娜查詢中的兩個表創建視圖

[英]create a view from two tables in athena query

基本上我的用例是我在 athena 中創建一個視圖,但我想根據表中列給出的日期 (snapshot_date) 從兩個表中選擇數據。 怎么做? 我沒有找到它的語法

SELECT
 baseline_year
, marketplace
, locale
, snapshot_time
, ...
FROM
  table1 

我想實現類似如果快照時間小於 2022-05-01,則使用表 2,否則使用表 1。我們可以在 FROM 中進行任何類型的調節嗎? 我已經探索過我們可以使用 CASE_WHEN 對列執行條件,但不確定是否可以在 FROM 中使用?

如果我沒記錯的話,您的意思是如果 snapshot_time 早於 2022-05-01 則使用 table2,如果 snapshot_time 大於或等於 2022-05-01 則使用 table1,無論這兩個表的shapshot_time是什么。

SELECT ... FROM table1 where date(snapshot_time)>= '2022-05-01'
union
SELECT ... FROM table2 where date(snapshot_time) < '2022-05-01' ;

您可以繼續使用參數化視圖,嘗試創建一個函數:

CREATE FUNCTION func() RETURNS DATE
  RETURN @var;

然后創建視圖:

CREATE VIEW view1 AS
SELECT
 T1.baseline_year
, T1.marketplace
, T1.locale
, T1.snapshot_time
, ...
FROM  table1 AS T1
WHERE DATE(T1.snapshot_time) >= func()
UNION
SELECT
 T2...,
 ..
FROM
  table1 AS T2
WHERE DATE(T2.snapshot_time) <= func()

暫無
暫無

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

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