首页 > 解决方案 > 使用 SQL 确保我有特定时间段的每一天的数据

问题描述

我希望仅从报告中的每个日期中选择一个数据点。我想确保每一天都得到考虑并且至少有一行信息,因为我们必须做一些不同的事情来将一个大数据文件移动到我们的数据仓库中(为一些数据导入一个大的谷歌表格,使用 Python其他一些数据的每日拉取 - 要确保没有遗漏任何日期),这些数据从现在到去年夏天。我可以做一个 COUNT DISTINCT 子句来确保第一个数据点和昨天(最新数据点)之间的天数,但我想验证每一天都被计算在内。应该提到我在 BigQuery 中。此外,created_at 样式的示例是:2021-02-09 17:05:44.583 UTC

这是我到目前为止所拥有的:

SELECT FIRST(created_at)
FROM 'large_table'
ORDER BY created_at

**我知道 FIRST 可能不是这种情况下的最佳子句,它目前正在采取行动来获取 created_at 中的第一个数据点,但只是作为一个起点。

标签: sqlgoogle-bigquery

解决方案


您可以使用聚合:

select any_value(lt).*
from large_table lt
group by created_at
order by min(created_at);

注意:这假设它created_at是一个date- 或至少每个日期只有一个值。您可能需要将其转换为日期:

select any_value(lt).*
from large_table lt
group by date(created_at)
order by min(created_at);

推荐阅读