복붙노트

[SQL] BigQuery의 SQL에서 지원 UNION 기능

SQL

BigQuery의 SQL에서 지원 UNION 기능

BigQuery를 아직 UNION에 대한 지원을하지 않는 것 같습니다 : https://developers.google.com/bigquery/docs/query-reference

(I 소스 함께하지 평균 unioning 테이블을한다. 그것은이 있습니다.)

그것은 곧 제공 될 예정입니다?

해결법

  1. ==============================

    1.당신이 UNION을 원하는 경우에 당신은 쿼리 결과를 결합 할 수 있도록, 당신은 부속 선택을 사용할 수 있습니다 BigQuery에에서 :

    당신이 UNION을 원하는 경우에 당신은 쿼리 결과를 결합 할 수 있도록, 당신은 부속 선택을 사용할 수 있습니다 BigQuery에에서 :

    SELECT foo, bar 
    FROM
      (SELECT integer(id) AS foo, string(title) AS bar 
       FROM publicdata:samples.wikipedia limit 10),
      (SELECT integer(year) AS foo, string(state) AS bar 
       FROM publicdata:samples.natality limit 10);
    

    이것은 SQL 거의 정확히 동일하다

    SELECT id AS foo, title AS bar 
    FROM publicdata:samples.wikipedia limit 10
    UNION ALL
    SELECT year AS foo, state AS bar 
    FROM publicdata:samples.natality limit 10;
    

    (참고 경우 희망 SQL UNION이 아닌 UNION ALL이하지 않습니다 일)

    또는, 당신은 두 개의 쿼리를 실행하고 결과를 추가 할 수 있습니다.

  2. ==============================

    2.BigQuery를 최근 UNION 연산 포함, 표준 SQL에 대한 지원을 추가했습니다.

    BigQuery를 최근 UNION 연산 포함, 표준 SQL에 대한 지원을 추가했습니다.

    웹 UI를 통해 쿼리를 제출할 때, 바로 SQL 버전 표제 아래 "를 사용하여 기존 SQL을"선택을 취소해야합니다 :

  3. ==============================

    3.당신은 항상 할 수 있습니다 :

    당신은 항상 할 수 있습니다 :

    SELECT * FROM (query 1), (query 2);
    

    이 같은 일을 같이 수행합니다

    SELECT * from query1 UNION select * from query 2;
    
  4. ==============================

    4.노동 조합은 참으로 지원됩니다. 당신이 게시하는 링크에서 발췌 :

    노동 조합은 참으로 지원됩니다. 당신이 게시하는 링크에서 발췌 :

    참고 : 다른 많은 SQL 기반의 시스템과는 달리, BigQuery를 테이블 조합을 나타 내기 위해 쉼표 구문을 사용하여 조인 없습니다. 다음과 같이 수단은 호환 스키마와 여러 테이블에 걸쳐 쿼리를 실행할 수 있습니다 :

    며칠 동안 의심스러운 활동을 찾기 //

    SELECT FORMAT_UTC_USEC(event.timestamp_in_usec) AS time, request_url
      FROM [applogs.events_20120501], [applogs.events_20120502], [applogs.events_20120503]
      WHERE event.username = 'root' AND NOT event.source_ip.is_internal;
    
  5. ==============================

    5.당신은 표준 SQL을 사용하는 경우, 그 주, 쉼표 연산자는 이제 수단은 가입 - 당신이 노동 조합을 원하는 경우 UNION 구문을 사용해야합니다 :

    당신은 표준 SQL을 사용하는 경우, 그 주, 쉼표 연산자는 이제 수단은 가입 - 당신이 노동 조합을 원하는 경우 UNION 구문을 사용해야합니다 :

    예를 들면 :

    #standardSQL
    SELECT
        column_name,
        count(*)
    from
        (SELECT * FROM me.table1 UNION ALL SELECT * FROM me.table2)
    group by 1
    
  6. ==============================

    6.이 BigQuery에 표준 SQL과 함께 UNION INTERSECT을 수행하기위한 매우 나를 도왔다.

    이 BigQuery에 표준 SQL과 함께 UNION INTERSECT을 수행하기위한 매우 나를 도왔다.

    #standardSQL
    WITH
      a AS (
      SELECT
        *
      FROM
        table_a),
      b AS (
      SELECT
        *
      FROM
        table_b)
    SELECT
      *
    FROM
      a INTERSECT DISTINCT
    SELECT
      *
    FROM
      b
    

    https://gist.github.com/yancya/bf38d1b60edf972140492e3efd0955d0 : 나는 /에서이 변형 예 스톨

  7. from https://stackoverflow.com/questions/10644993/support-union-function-in-bigquery-sql by cc-by-sa and MIT license