我使用以下SQL查询来提取由RowDate分组的表(table1)中的行数:
SELECT RowDate AS Date,
Count(RowDate) as NumberRows FROM [project:dataset.table1] GROUP BY Date ORDER BY Date
这给了我一张表格,显示:
Row Date NumberRows
1 2017-01-01 54
2 2017-01-02 57
3 2017-01-03 46
4 2017-01-04 32
5 2017-01-05 28
是否可以在此查询中包含我的数据集中的多个表(或者甚至更好地在项目级别),以显示每个RowDate(所有表中的公共列)的行数的单独列?
如果是这样,可以在不在查询中明确命名表的情况下完成吗?
非常感谢任何帮助。
谢谢。
答案 0 :(得分:2)
使用标准SQL ,您可以执行以下操作:
SELECT RowDate AS Date,
select row_date, sum(t1_rows) as t1_rows, sum(t2_rows) as t2_rows, . . .
from ((select rowdate, count(*) as t1_rows, 0 as t2_rows, . . .
from table1
group by row_date
) union all
(select rowdate, 0, count(*), . . .
from table2
group by row_date
) union all
. . .
) t
group by rowdate
order by rowdate;
答案 1 :(得分:1)
如果由于某种原因您仍然使用BigQuery Legacy SQL - 您应该使用TABLE_QUERY()
- 请参阅下面的示例
#legacySQL
SELECT
RowDate,
COUNT(1) AS NumberRows
FROM TABLE_QUERY([project:dataset], 'true')
GROUP BY RowDate
ORDER BY RowDate
同时,请查看 - Wildcard Tables
- BigQuery标准SQL的功能 - 以及Migrating to Standard SQL