【发布时间】:2021-11-01 21:02:45
【问题描述】:
所以我有这个 BigQuery 代码来处理 MIMIC 数据库
所以我在 BigQuery 中有这张表,其中包含大量个人的时间序列信息,但在不同的时间,所以有些可能每 5 分钟有一次,有些每 5 小时有一次,有些分散。
我想构建一个表格版本,其中每个人每 4 小时有一个条目,仅此而已,即每 4 小时间隔内的条目将被平均。
这就是我现在拥有的
WITH minmax as(
SELECT subject_id, hadm_id, icustay_id , min(charttime) as mint, max(charttime) as maxt
FROM `projectx-mcgill.preprocessing.overalltable_Lab_withventparams`
GROUP BY icustay_id, subject_id, hadm_id
ORDER BY icustay_id, subject_id, hadm_id
), grid as (
SELECT icustay_id, subject_id, hadm_id,
UNNEST(GENERATE_TIMESTAMP_ARRAY(CAST(mint as timestamp), CAST(maxt as timestamp), INTERVAL 4 HOUR)) as start_time
FROM minmax
GROUP BY icustay_id, subject_id, hadm_id,mint,maxt
ORDER BY icustay_id, subject_id, hadm_id)
我试图让 start_time 类似于 postgres 的 generate_sequence() 函数,这样我就可以在渐进的 4 小时标记处获得每个人的信息,但我不断收到“语法错误:预期的”(“但得到了关键字 UNNEST”。我发现某处说 UNNEST 不能在 FROM 子句之前,但是当我将它移到后面时,我收到一个新错误,说表没有分组或聚合。知道我能做什么吗?
【问题讨论】: