google-bigquery - 从当前日期提取前一周
解决方案
以下是 BigQuery 标准 SQL
#standardSQL
SELECT
ReportDate,
ReportWeekCommencing,
EXTRACT(WEEK FROM ReportDate) = EXTRACT(WEEK FROM ReportWeekCommencing) AS WeekToDate,
EXTRACT(WEEK FROM DATE_SUB(ReportDate, INTERVAL 1 WEEK)) = EXTRACT(WEEK FROM ReportWeekCommencing) AS PreviousWeek
FROM `project.dataset.table`
您可以使用虚拟数据进行测试,使用上面的示例,如下例所示
#standardSQL
WITH `project.dataset.table` AS (
SELECT DATE '2020-06-18' ReportDate, DATE '2020-06-14' ReportWeekCommencing UNION ALL
SELECT '2020-03-31', '2020-03-29' UNION ALL
SELECT '2020-03-29', '2020-03-22' UNION ALL
SELECT '2020-03-24', '2020-03-22' UNION ALL
SELECT '2020-03-27', '2020-03-10'
)
SELECT
ReportDate,
ReportWeekCommencing,
EXTRACT(WEEK FROM ReportDate) = EXTRACT(WEEK FROM ReportWeekCommencing) AS WeekToDate,
EXTRACT(WEEK FROM DATE_SUB(ReportDate, INTERVAL 1 WEEK)) = EXTRACT(WEEK FROM ReportWeekCommencing) AS PreviousWeek
FROM `project.dataset.table`
带输出
Row ReportDate ReportWeekCommencing WeekToDate PreviousWeek
1 2020-06-18 2020-06-14 true false
2 2020-03-31 2020-03-29 true false
3 2020-03-29 2020-03-22 false true
4 2020-03-24 2020-03-22 true false
5 2020-03-27 2020-03-10 false false
推荐阅读
- haskell - 为什么这个 Haskell 函数中没有一个普遍量化的变量?
- c# - ASP.NET Core React 项目模板 - 如何链接到 C# 后端
- python - Ctypes:OSError:异常:堆栈溢出
- python - 在唯一元素的结构化 Numpy 数组中查找相邻值的最简单方法是什么?
- ionic-framework - 如何将 Phaser 3 集成到 Ionic 4?
- sql-server - 如何选择 SQL Server 表作为制表符分隔的字符串
- javascript - 当实际的鼠标点击没有在目标元素上开始时,如何防止触发点击事件?
- flutter - 如何在 Dart 中获取某物的类型?
- java - 文件中的允许值
- java - 使用 String.parseByte(string s) 处理 0x7F 以上的值 - Java