표준 SQL BigQuery에서 FILTER (http://modern-sql.com/feature/filter)의 동작을 에뮬레이트 할 수있는 방법이 있습니까? 내가 할 필요가 무엇BigQuery에서 이벤트 최신 성을 계산하는 윈도우의 필터 파티션
은 다음과 같습니다 본질적으로
SELECT MAX(date) FILTER (WHERE event_happend = 1) OVER ( PARTITION BY user_id ORDER BY date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM ...
내가 어떤 이벤트가 현재 행의 날짜 이전에 발생한 가장 최근의 날짜를 해결해야합니다. 열 event_happened
의 값은 0
및 이며, 현재 행의 날짜 이전에 이벤트가 발생한 가장 최근 날짜가 필요합니다 (event_happened = 1
).
왜 ROWS 대신 RANGE를 사용합니까? 그런 다음 현재 행의 값을 제외 할 수 있습니다. –
@ElliottBrossard 제안 해 주셔서 감사합니다. 그러나 RANGE를 사용하는 것이 어떻게 도움이되는지 잘 모르겠습니다. 제발 좀 더 자세히 설명해 주시겠습니까? 나는 또한 명확하게하기 위해 나의 질문에 다음을 추가했다 : "열 event_happened 값을 0과 1이 소요되며 event_happened = 1 현재 행의 날짜 이전에 이벤트가 발생한 가장 최근 날짜가 필요합니다." – user3531907
@ElliottBrossard 또한 질문에 날짜 열의 이름을 업데이트했습니다. 당연히 혼란 스러웠습니다. – user3531907