2017-11-19 1 views
1
에서

어떻게 BigQuery에서의 수에 필터링 할 수 있습니다 내가 좋아하는 뭔가를하고 있던 포스트 그레스에서COUNT (*) 필터 (WHERE ... BigQuery를

:이 작동하지 않지만

COUNT(*) FILTER (WHERE event_date>('{{ report_date }}'::date-INTERVAL '2 WEEK')) 

을 . BigQuery에 가장 좋은 대안을 What't I 표준 SQL을 사용

답변

2

BigQuery에 표준 SQL의 경우, 당신은/테스트 더미 예를

#standardSQL 
WITH `project.dataset.yourTable` AS (
    SELECT 1 AS event_id, DATE '2017-11-19' AS event_date UNION ALL 
    SELECT 2, DATE '2017-11-18' UNION ALL 
    SELECT 3, DATE '2017-10-15' 
) 
SELECT 
    COUNT(*) AS all_events, 
    COUNTIF(event_date > DATE_SUB(CURRENT_DATE(), INTERVAL 2 WEEK)) AS qualified_events 
FROM `project.dataset.yourTable` 

이하로 사용하여 상기와 함께 재생할 수 있습니다

COUNTIF(event_date > DATE_SUB(CURRENT_DATE(), INTERVAL 2 WEEK)) 

아래로 COUNTIFDATE_SUB 기능을 사용할 수 있습니다 사람이하는 것처럼 출력 예상치는

all_events qualified_events  
3   2  
0

사용 case :?.

SUM(CASE WHEN event_date > '{{ report_date }}'::date-INTERVAL '2 WEEK' THEN 1 ELSE 0 END) 

Postgres가 ANSI 표준 FILTER 구문을 구현하기 전에는 "구식"방식입니다.