首页 > 解决方案 > 在 Big Query 中使用通配符查询按日期计算数据集中的记录数

问题描述

我正在使用以下查询:

SELECT 
  _TABLE_SUFFIX AS Table, 
  Date, 
  Count(*) AS Records 
FROM `project.dataset.table_*` 
GROUP BY Date, Table

我遇到的问题是此查询的结果仅查看数据的子集(特别是过去 60 天)。

如果我直接连接到其中一个表(例如通过 Data Studio),我可以使用COUNT_DISTINCT(Date)它,它给我的结果约为 360。

数据集中的源表是日期分区的,这会导致问题吗?

标签: sqlgoogle-bigquery

解决方案


我在 BigQuery 中使用公共数据集进行了测试,数据是使用这种分区表的谷歌分析样本,我得到了大约 100 个结果,所以,我不认为分区是问题的原因。

这是我使用的查询,您可以在自己的项目中尝试,因为它是一个公共数据集:

SELECT _TABLE_SUFFIX AS Table, 
Date, 
Count(*) AS Records 
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_2017*`
GROUP BY Date, Table

我得到了这个结果:

BigQuery 结果

我的建议是验证 FROM 子句,也许你把“*”放在哪里可能是关键,你也可以尝试使用前面提到的公共数据集进行测试来运行你自己的查询。


推荐阅读