2017-12-08 1 views
-1

의 결과는 나는 그들이 이전 우리에서 구입했는지 여부에 의해 세그먼트의 웹 사이트 방문자에 노력하고 있습니다.는 BigQuery에 - CASE WHEN X IN (다른 테이블의 필드), 세 L 조인 오류

CASE WHEN fullVisitorId IN (SELECT fullVisitorId FROM [xxxx-0000:36363.unique_FullVisitorIds_of_past_purchasers_table]) THEN "Purchased" 
ELSE "Never Purchased" END AS Previous_Purchase 

오류 : 나는 SELECT 문에서 아래의 필드에 넣었을 때, 나는 더 아래 오류 "오류 : (L10 : 20) : 세 L 조인 표현 (예 :"X IN이 (SELECT ...) ") WHERE 또는 HAVING 절에서만 지원됩니다."

어떻게해야합니까?

감사

+2

는 조인에 대한 자세한 유연 [표준 SQL을 (https://cloud.google.com/bigquery/docs/reference/standard-sql/), 사용하려고 있나요? [마이 그 레이션 가이드] (https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-modules/)에서 설명한대로 테이블 이름과 같은 구문을 일부 업데이트해야합니다. 레거시 - SQL). –

+0

정보를 제공해 주셔서 감사합니다. 표준 SQL로 전환하면 나에게 몇 가지 다른 문제가 생기므로 아래에서 언급 한 것처럼 조인과 함께 간다. 건배. – Balkan

+0

문제는 무엇인지 설명 할 수 있습니까? –

답변

0

나는이 라인을 따라 요약 된 결과에 가입하는 것이 좋습니다 :

SELECT 
    CASE WHEN p.has_purchased = 1 THEN "Purchased" 
     ELSE "Never Purchased" 
    END AS Previous_Purchase 
FROM existing_from_table f 
LEFT JOIN (
    SELECT fullVisitorId, 1 has_purchased 
    FROM [xxxx-0000:36363.unique_FullVisitorIds_of_past_purchasers_table] 
    GROUP BY fullVisitorId 
    ) p on f.fullVisitorId = p.fullVisitorId 

주의 : 행의 전체 수는 영향을받지 않도록 사용하여 그룹을.

+0

대단히 감사드립니다. – Balkan