[SQL] 어떻게 BigQuery에 / SQL에서 데이터 다량의 열과 행을 바꾸어 하는가?
SQL어떻게 BigQuery에 / SQL에서 데이터 다량의 열과 행을 바꾸어 하는가?
나는 컬럼에 행에서 BigQuery의 데이터 테이블의 많은 양의 (15 억 행) 전치에 문제가 있습니다. 나는 하드 코딩 할 때 데이터의 소량을 수행하는 방법을 알아낼 수 있지만, 다량의 수 있습니다. 테이블의 스냅 샷은 다음과 같다 :
+ -------------------------- + | CustomerID를 기능 가치 | + -------------------------- + | 1 A123 3 | | 1 F213 7 | | 1 F231 8 | | 1 B789 9.1 | | 2 A123 4 | | 2 U123 4 | | 2 B789 12 | | .. .. .. | | .. .. .. | | 400000 A123 8 | | 400000 U123 7 | | 400000 R231 6 | + -------------------------- +
그래서 기본적으로 3000 기능과 함께 약 40 만 별개의 CUSTOMERID이 있고, 일부는 내가 좀하고 싶습니다 최종 결과 테이블은 각 행의 선물을 한 별개의 고객 ID입니다 3000있는 동안 일부 고객 ID가 2000 기능을 가질 수 있도록하지 모든 고객 ID가 같은 기능을 가지고 있습니다, 3000 열 선물 모든 기능이. 이 같이 :
CustomerID를 Feature1 Feature2 ... Feature3000
세포의 일부가 누락 값을 가질 수 있도록.
사람은 어떻게 BigQuery에 또는 SQL에서이 작업을 수행하는 생각이있다?
미리 감사드립니다.
해결법
-
==============================
1.
STEP #1
쿼리 아래에서 실행 / 테이블의 실제 이름으로 yourTable을 교체하고 실행
SELECT 'SELECT CustomerID, ' + GROUP_CONCAT_UNQUOTED( 'MAX(IF(Feature = "' + STRING(Feature) + '", Value, NULL))' ) + ' FROM yourTable GROUP BY CustomerID' FROM (SELECT Feature FROM yourTable GROUP BY Feature)
결과적으로 일부 문자열을 얻을 것이다 다음 단계에서 사용할 수!
STEP #2
1 단계에서 당신이 가지고 문자열을 가지고 단지 쿼리로 실행 출력은 당신이 질문에 질문 피벗입니다
-
==============================
2.안녕하세요 @Jade 내가 전에 매우 비슷한 질문을 기록했다. 그리고 @MikhailBerlyant에서 매우 도움 (유사한) 대답을 얻었다. 무엇의 가치를 위해, 나는 내 경우에는 dummify하는 4000에 대한 기능을 가지고 있으며 오류 "자원 쿼리 실행 중에 초과"로 달렸다.
안녕하세요 @Jade 내가 전에 매우 비슷한 질문을 기록했다. 그리고 @MikhailBerlyant에서 매우 도움 (유사한) 대답을 얻었다. 무엇의 가치를 위해, 나는 내 경우에는 dummify하는 4000에 대한 기능을 가지고 있으며 오류 "자원 쿼리 실행 중에 초과"로 달렸다.
나는 대규모 데이터 변환 (오히려 쿼리 이상)이 유형의 더 나은 (예 : 스파크 등)이 작업에 더 적합한 다른 도구 방치 생각합니다.
from https://stackoverflow.com/questions/34798244/how-to-transpose-rows-to-columns-with-large-amount-of-the-data-in-bigquery-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 날짜 시간에 대한 SSIS 소스 형식 암시 적 변환 (0) | 2020.05.17 |
---|---|
[SQL] 업데이트 트리거 후 ORACLE : ORA-04091 테이블 오류를 돌연변이 해결 (0) | 2020.05.17 |
[SQL] SELECT 작동하지 MySQL을 저장 프로 시저 (기본 질문) (0) | 2020.05.17 |
[SQL] 대신 필터 테이블의 C # 목록을 기반으로 필터 SQL (0) | 2020.05.17 |
[SQL] 연결하여 그룹화 행 (0) | 2020.05.17 |