[英]How to run a query to get results of last 12 months ( BigQuery)
我想獲取 Big Query 表中特定 ID 過去 12 個月的記錄。 我從原始時間戳列中提取月份和年份作為單獨的列。 我嘗試使用 date_add() 和 date_diff() 但出現了一些錯誤。 我的數據集是這樣的:
Month Year MonthName ID
8 2018 August 1
9 2018 September 2
9 2017 September 3
我怎樣才能做到這一點?
我已從原始時間戳列中將月份和年份提取為單獨的列
我建議您根據原始時間戳列進行12個月的過濾。
假設它名為ts
以下是BigQuery Standard SQL
WHERE DATE(ts) BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH) AND CURRENT_DATE()
例如
#standardSQL
SELECT ts, id
FROM `project.dataset.table`
WHERE id = 1
AND DATE(ts) BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH) AND CURRENT_DATE()
一種方法是將年/月轉換為自某個日期起的月份。 然后對當前日期執行相同操作:
where year * 12 + month >= extract(year from current_date) * 12 + extract(month from current_date) - 12
假設您沒有將來的數據。 同樣的想法適用於將來的日期(使用<而不是> =)。
timestamp
被假定為BQ表的標准時間戳命名為時間標識符字段。 因此,您可以像下面那樣過濾以僅獲取最近12個月的數據:
WHERE DATE(TIMESTAMP_MILLIS(timestamp)) BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH) and CURRENT_DATE()
如果您要查找過去 12 個完整月:
SELECT
DATE_SUB((DATE_TRUNC(CURRENT_DATE(), month)), INTERVAL 1 month),
DATE_SUB((DATE_TRUNC(CURRENT_DATE(), month)), INTERVAL 13 month)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.