2013-07-01 1 views
2

exclusion_list 테이블에 저장된 키워드를 포함하는 레코드를 제외하고 싶습니다. 일반적인 DB에서는 아래처럼 WHERE NOT EXISTS 구문을 사용하여이를 수행 할 수 있습니다.WHERE NOT EXISTS와 같은 레코드를 제외하는 방법

SELECT datetime, server, page, uniq_id, client_req, domain, search_keyword 
FROM apache_log a 
WHERE NOT EXISTS 
    (SELECT 0 FROM exclusion_list e WHERE regexp_like(a.client_req, e.ex_url)) 

동일한 방법으로 BigQuery를 사용할 수 있습니까?

답변

3

bigquery 설명서에서 SELECT WHERE NOT EXISTS과 가장 가까운 것은 SELECT WHERE NOT IN 절입니다. 그것은 각 인수는 다음 다른 모든 값과 OR 연산 평가는 SQL IN 조건 작품에 상당히 유사한 방식으로 작동 설명서에 따르면

SELECT datetime, server, page, uniq_id, client_req, domain, search_keyword 
FROM apache_log a 
WHERE NOT IN 
    (SELECT 0 FROM exclusion_list e WHERE regexp_like(a.client_req, e.ex_url)) 

.

Returns true if expr matches expr1, expr2, or any value in the parentheses. The IN keyword is an efficient shorthand for (expr = expr1 || expr = expr2 || ...). The expressions used with the IN keyword must be constants and they must match the data type of expr.

자세한 정보 Here.

+0

답장을 보내 주셔서 감사합니다. 그러나 BQ는 어디서나 허용하지 않습니다. 오류 : 줄 3, 열 7에서 ""이 (가) 발생했습니다 : – user2414055

+0

예, 대답의 샘플에없는 필드가 누락되었습니다 ... 작동하는 쿼리 : SELECT top (상태, 10), COUNT (*) FROM [publicdata : samples.natality] 상태가 NOT IN ("TX", "CA") 인 경우 –

관련 문제