sql - 使用 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 中的第一个数据点,但只是作为一个起点。
解决方案
您可以使用聚合:
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);
推荐阅读
- java - Pdfbox Java docusign 签名消失
- java - 在线程完成其工作或在 android 中返回一个值后,在 MainActivity 中运行一行
- regex - 仅用于文件上传图像的正则表达式 - opencart
- reactjs - 为什么 `npm test` 只进行一项测试就需要这么长时间?
- firebase - 两个读取规则和第二个规则进行字段检查
- javascript - 动态插入的选择下拉字段无法正常工作
- android - 我想要片段中的android覆盖活动方法
- c - 你能在C中放置一个指向常规数组的动态指针吗
- javascript - 按字符 NodeJS 拆分字符串
- python - 在保持比例的同时对网格进行约束优化