sql - 在 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。
数据集中的源表是日期分区的,这会导致问题吗?
解决方案
我在 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
我得到了这个结果:
我的建议是验证 FROM 子句,也许你把“*”放在哪里可能是关键,你也可以尝试使用前面提到的公共数据集进行测试来运行你自己的查询。
推荐阅读
- python - 在带有 random.sample 的 for 循环中没有重复
- mysql - MySQL 事件不起作用(插入语句)
- android - 如何在android导航中使用单顶
- c# - 将枚举从字符串转换为数据库中的 Int 然后返回字符串 - Entity Framework Core 3
- c# - 椭圆纹理没有做预期的事情
- postgresql - 使用 prisma 在本地连接 postgres 数据库
- google-pagespeed - “来自引用者 https://www.googleapis.com/ 的请求被阻止”错误
- django - django:Reverse for 'detail' 没有找不到参数。尝试了 1 种模式:['detail/(?P
[0-9]+)/$'] - f# - FSharp 计算表达式:无法在自定义操作中引用绑定值
- python - Python重新搜索二进制字符串