以下是一个示例代码,演示如何使用BigQuery进行标量子查询并将日期时间按时间间隔聚合为数组:
SELECT
timestamp,
(
SELECT
ARRAY_AGG(time)
FROM
`project.dataset.table`
WHERE
timestamp = t.timestamp
AND EXTRACT(HOUR FROM time) = EXTRACT(HOUR FROM t.timestamp)
ORDER BY
time DESC
) AS time_array
FROM
`project.dataset.table` AS t
在这个例子中,我们使用了一个外部子查询来生成一个时间数组,该数组包含与主查询中的每个timestamp值相关联的所有time值。子查询中的WHERE子句用于过滤与主查询中的时间戳匹配且具有相同小时的时间值。我们使用ARRAY_AGG函数将这些时间值聚合到一个数组中,并使用ORDER BY子句按降序排列。
请注意,你需要将project.dataset.table
替换为实际的项目、数据集和表名,以适应你的数据。
这只是一个示例,你可以根据你的具体需求进行修改和优化。希望对你有所帮助!