跟进此问题:Impala - Get for all tables in database concentenated columns
假设我有一个表B1,B2,... B300的数据库A. 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"是串联的字符串。
答案 0 :(得分:0)
首先将UNION所有表放在一起,并为每个表生成table_name。您可以将表名复制到excel中,然后自动为excel中的每个表生成SELECT和UNION语句(作为每个表的新列)。然后你可以在impala中运行UNION代码。
CREATE TABLE all_tables_unioned AS
SELECT
*
, "B1" AS table_name
FROM B1
UNION
SELECT
*
, "B2" AS table_name
FROM B2
Etc...
然后,您可以将此新表中的所有列名从hive Metorore复制到excel中,并创建一个新的逗号列(这样可以在excel中生成代码以节省您输入逗号的速度)。然后将excel中的两列复制并粘贴到此代码中:
SELECT
CONCAT("all columns from excel")
FROM all_tables_unioned