获取数据库相关列中的多个表

cczfrluj  于 2021-06-26  发布在  Impala
关注(0)|答案(1)|浏览(299)

继续回答这个问题:impala-get用于数据库相关列中的所有表
假设我有一个数据库a,表b1,b2。。。b300型。b1有c1列和c2列
,b2有d1、d2和d3列。。。b300有e1和e2列。
我正在寻找一个impala查询,它将产生以下所需的输出:

B1    | "C1+C2"

B2    | "D1+D2+D3"

...
B300  | "E1+E2"

其中“d1+d2+d3”、“c1+c2”和“e1+e2”是串联字符串。

whitzsjs

whitzsjs1#

首先,将所有表合并在一起,并为每个表生成表名。您可以将表名复制到excel中,然后自动为excel中的每个表生成select和union语句(作为每个表的新列)。然后可以在impala中运行联合代码。

CREATE TABLE all_tables_unioned AS
SELECT 

* 

, "B1" AS table_name
FROM B1
UNION
SELECT

* 

, "B2" AS table_name
FROM B2 
Etc...

然后,您可以将这个新表中的所有列名从配置单元元存储复制到excel中,并创建一个新的逗号列(这是在excel中生成代码,以避免您键入逗号)。然后将excel中的两列复制并粘贴到以下代码中:

SELECT 
CONCAT("all columns from excel")
FROM all_tables_unioned

相关问题