使用UNION ALL查询多个表,并且各个表都没有一个区分每个表中数据的字段,因此,想法是用表名或其他标识符填充一个字段,以便根据以下内容区分数据它源自哪个表。
选择_TABLE_SUFFIX
选择
发布日期,
Entry_No_,
文件号码_,
G_L_Account_No_,
Global_Dimension_1_Code,
Global_Dimension_2_Code,
描述,
量
从
1_G_L_Entry
哪里
张贴日期>'2019-03-31'
AND G_L_Account_No_>'399999'
全联盟
选择
发布日期,
Entry_No_,
文件号码_,
G_L_Account_No_,
Global_Dimension_1_Code,
Global_Dimension_2_Code,
描述,
量
从
2_G_L_Entry
哪里
张贴日期>'2019-03-31'
AND G_L_Account_No_>'399999'
全联盟
选择
发布日期,
Entry_No_,
文件号码_,
G_L_Account_No_,
Global_Dimension_1_Code,
Global_Dimension_2_Code,
描述,
量
从
3_G_L_Entry
哪里
张贴日期>'2019-03-31'
AND G_L_Account_No_>'399999'
全联盟
选择
发布日期,
Entry_No_,
文件号码_,
G_L_Account_No_,
Global_Dimension_1_Code,
Global_Dimension_2_Code,
描述,
量
从
4_G_L_Entry
哪里
张贴日期>'2019-03-31'
AND G_L_Account_No_>'399999'
全联盟
选择
发布日期,
Entry_No_,
文件号码_,
G_L_Account_No_,
Global_Dimension_1_Code,
Global_Dimension_2_Code,
描述,
量
从
5_G_L_Entry
哪里
张贴日期>'2019-03-31'
AND G_L_Account_No_>'399999'
全联盟
选择
发布日期,
Entry_No_,
文件号码_,
G_L_Account_No_,
Global_Dimension_1_Code,
Global_Dimension_2_Code,
描述,
量
从
7_G_L_Entry
哪里
张贴日期>'2019-03-31'
AND G_L_Account_No_>'399999'
全联盟
选择
发布日期,
Entry_No_,
文件号码_,
G_L_Account_No_,
Global_Dimension_1_Code,
Global_Dimension_2_Code,
描述,
量
从
8_G_L_Entry
哪里
张贴日期>'2019-03-31'
AND G_L_Account_No_>'399999'
订购
Entry_No_ ASC
从查询的每个表或其他方法中选择表名称以区分数据...
答案 0 :(得分:2)
_table_suffix
仅在扩展*
时起作用:
SELECT _table_suffix suffix, COUNT(*) c
FROM `fh-bigquery.stackoverflow_archive_questions.q*`
GROUP BY 1
ORDER BY 1 DESC
但是在进行UNION
时,您需要手动“标记”每个表:
SELECT table, COUNT(*) c
FROM (
SELECT *, '201703' table
FROM `fh-bigquery.stackoverflow_archive_questions.q201703`
UNION ALL
SELECT *, '201706' table
FROM `fh-bigquery.stackoverflow_archive_questions.q201706`
UNION ALL
SELECT *, '201709' table
FROM `fh-bigquery.stackoverflow_archive_questions.q201709`
)
GROUP BY 1
ORDER BY 1 DESC