sql - 使用 CURRENT_DATE() 提取通配符表的子集
问题描述
我有一组表都以相同的字符串类型日期格式结尾,例如
response_logs.tablename_20200827
response_logs.tablename_20200826
response_logs.tablename_20200825
我的查询的结构是使用通配符功能将所有这些表拉到同一行中:
SELECT
column1, column2, column3
FROM
response_logs.tablename_*
这已经工作了很长时间,但是现在数据集变得太大而无法拉出整个集合。我希望能够根据当前日期提取最近几周的数据。我已经成功手动设置表后缀日期:
SELECT
column1, column2, column3
FROM
response_logs.tablename_*
WHERE _table_suffix>"20200824"
但我希望能够自动执行此过程(查询已安排并在我通常不看的情况下运行)。就像是:
SELECT
column1, column2, column3
FROM
response_logs.tablename_*
WHERE _table_suffix>(CURRENT_DATE()-7)
如何格式化查询的 (CURRENT_DATE()) 部分,以便它只提取最后几周的表?
谢谢!
解决方案
减去天数以获得您的时间窗口,然后将日期格式设置为与后缀相同的格式。
select _table_suffix as suffix, count(*) as ct
from `project.dataset.table_*`
where _table_suffix >= format_date('%Y%m%d', date_sub(current_date(), interval 7 day))
group by 1
推荐阅读
- java - 得到一个错误,即 android.system.ErrnoException: write failed: EBUSY (Device or resource busy)
- makefile - 如何在 Makefile 命令中修改文件名
- javascript - 为什么在北半球画圆会变成椭圆?
- python - 如果满足单独单元格的条件,则将单元格的内容替换为另一个单元格
- javascript - Discord JS 无法清除所有反应
- processing - 单击图像进行声音播放 - 处理
- postgresql - 我无法捕获数据库引用
- python - 在一个数据框列中访问不同的值?
- jhipster - 如何自定义 JHipster 代码生成模板?
- three.js - 如何从 cdn THREE.js 加载 GLTFLoader