【发布时间】:2021-04-26 15:03:51
【问题描述】:
我正在尝试创建一个 SQL 查询来收集在“c4”事件期间发生的所有事件。换句话说,我想在 c4 期间获取所有具有 startTime 或 endTime 的行。
| eventId | machineId | startTime | endTime |
|---|---|---|---|
| a3 | 1 | 9:19 | 9:41 |
| c4 | 1 | 9:15 | 9:42 |
| a9 | 1 | 9:16 | 9:18 |
| b3 | 1 | 9:40 | 9:46 |
| j5 | 1 | 9:51 | 9:52 |
| g6 | 2 | 9:57 | 9:59 |
在上表中,我希望返回 a3、a9 和 b3。
我的尝试如下,但我不知道如何区分被检查行的时间或 c4 行的时间。
COUNTIF(
eventId = 'c4'
AND UNIX_SECONDS(startTime) > UNIX_SECONDS(startTime)
AND UNIX_SECONDS(endTime) < UNIX_SECONDS(endTime)) OVER (
PARTITION BY machineId
) AS is_during_c4
感谢任何指导。
【问题讨论】:
标签: sql google-bigquery