以下是 BigQuery 标准 SQL:
#standardSQL
SELECT date_time, uniques
FROM `project.dataset.yourTable`
WHERE (PARSE_DATE('%Y-%m-%d', date_time) < DATE_SUB(CURRENT_DATE(), INTERVAL 1 YEAR))
OR EXTRACT(YEAR FROM PARSE_DATE('%Y-%m-%d', date_time)) = 2017
您可以使用问题中的虚拟数据来测试/玩它,如下所示
#standardSQL
WITH `project.dataset.yourTable` AS (
SELECT '2016-01-01' date_time, 363878 uniques UNION ALL
SELECT '2016-01-02', 383813 UNION ALL
SELECT '2016-01-03', 392579 UNION ALL
SELECT '2016-01-04', 709367 UNION ALL
SELECT '2016-11-15', 841850 UNION ALL
SELECT '2016-11-16', 847831 UNION ALL
SELECT '2016-11-17', 797610 UNION ALL
SELECT '2016-11-18', 187158 UNION ALL
SELECT '2016-11-19', 521100 UNION ALL
SELECT '2017-11-12', 297604 UNION ALL
SELECT '2017-11-13', 527858 UNION ALL
SELECT '2017-11-14', 474051 UNION ALL
SELECT '2017-11-15', 569686
)
SELECT date_time, uniques
FROM `project.dataset.yourTable`
WHERE (PARSE_DATE('%Y-%m-%d', date_time) < DATE_SUB(CURRENT_DATE(), INTERVAL 1 YEAR))
OR EXTRACT(YEAR FROM PARSE_DATE('%Y-%m-%d', date_time)) = 2017
强烈建议使用 BigQuery 标准 SQL,因此如果您仍在使用旧版 SQL,请考虑迁移到标准 SQL
同时,如果您的代码在旧版 sql 中(在我看来是这样) - 您可以在下面使用
#legacySQL
SELECT date_time, uniques
FROM [project:dataset.yourTable]
WHERE (DATE(date_time) < DATE(DATE_ADD(CURRENT_DATE(), -1, 'year')))
OR YEAR(date_time) = 2017
您可以测试/玩虚拟数据,如下所示
#legacySQL
SELECT date_time, uniques
FROM --[project:dataset.yourTable]
(SELECT '2016-01-01' date_time, 363878 uniques),
(SELECT '2016-01-02' date_time, 383813 uniques),
(SELECT '2016-01-03' date_time, 392579 uniques),
(SELECT '2016-01-04' date_time, 709367 uniques),
(SELECT '2016-11-15' date_time, 841850 uniques),
(SELECT '2016-11-16' date_time, 847831 uniques),
(SELECT '2016-11-17' date_time, 797610 uniques),
(SELECT '2016-11-18' date_time, 187158 uniques),
(SELECT '2016-11-19' date_time, 521100 uniques),
(SELECT '2017-11-12' date_time, 297604 uniques),
(SELECT '2017-11-13' date_time, 527858 uniques),
(SELECT '2017-11-14' date_time, 474051 uniques),
(SELECT '2017-11-15' date_time, 569686 uniques)
WHERE (DATE(date_time) < DATE(DATE_ADD(CURRENT_DATE(), -1, 'year')))
OR YEAR(date_time) = 2017