在BigQuery中,可以使用窗口函数和子查询来查找过去365天内每个值的最新记录。以下是一个示例解决方法:
WITH latest_records AS (
SELECT value, MAX(date) AS max_date
FROM your_table
WHERE date >= DATE_SUB(CURRENT_DATE(), INTERVAL 365 DAY)
GROUP BY value
)
SELECT t.*
FROM your_table AS t
JOIN latest_records AS lr
ON t.value = lr.value AND t.date = lr.max_date
解释:
首先,我们使用子查询 latest_records
来获取过去365天内每个值的最新记录。在子查询中,我们选择了 value
列和最大日期 max_date
列,并通过 GROUP BY
子句按 value
分组。
然后,在主查询中,我们将原始表 your_table
与 latest_records
子查询进行连接。我们使用连接条件 t.value = lr.value AND t.date = lr.max_date
来找到与最新记录匹配的行。
这样,最终的查询结果将包含过去365天内每个值的最新记录。
请注意,你需要将 your_table
替换为你的表名,并根据你的实际需求调整日期条件。