[英]Athena SQL create table from variable number of tables
我想從從 SELECT 查詢中獲得的變量多個表名創建一個表/視圖。
可以從多個已知表創建一個表,如下所示:
CREATE TABLE new_table AS
SELECT column_1, column_2
FROM clients_1, clients_2, ... clients_n;
要獲取表格列表,我可以使用以下內容:
SELECT DISTINCT table_name FROM information_schema.columns WHERE table_name like '%clients_%';
返回:
table_name
1 clients_1
2 clients_2
如何將表名結果用作 CREATE TABLE FROM 子句中的列表?
我用 WITH 嘗試過這樣的事情:
WITH mytable AS
(SELECT DISTINCT table_name FROM information_schema.columns WHERE table_name like '%clients_%')
CREATE TABLE new_table AS
SELECT column_1, column_2
FROM mytable;
但它大多不起作用。
即使這樣做,例如不使用 WITH 並選擇 * 列 -
CREATE TABLE new_table AS
SELECT *
FROM (SELECT DISTINCT table_name FROM information_schema.columns WHERE
table_name like '%clients_%');
new_table 只是 mytable/nested 查詢的副本。
想法?
謝謝!
我最終選擇了這樣的視圖:
CREATE OR REPLACE VIEW clients_all AS
SELECT column_1, column_2 FROM client1
UNION ALL
SELECT column_1, column_2 FROM client2
缺點是每當添加新的 client_n 表時我都必須更新視圖,並明確指定表的名稱而不是從查詢中推斷它們,
但是我可能不得不將它分成兩個查詢,即使按照最初的意圖創建一個表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.