홈>
코스 라에서 BigQuery 코스의 일부인 코드를 이해하려고했습니다. 검색어는 다음과 같습니다
SELECT
CONCAT(fullVisitorId, CAST(visitID AS STRING)) AS unique_session_id,
sessionQualityDim,
SUM(productRevenue) AS transactions_revenue
FROM
transaction_table
WHERE sessionQualityDim > 60
GROUP BY unique_session_id, sessionQualityDim
내 질문은 SQL 문의 순서가 어떻게 실행되는지입니다. 주로 GROUP BY가 unique_session_id (두 열 사이의 CONCAT)에서 수행 될 때 'GROUP BY'는 계산 된 CONCAT 결과 (unique_session_id)를 어떻게 알 수 있습니까? 내 지식으로는 SELECT 문이 마지막에 실행될 것입니다. 그러나이 경우 CONCAT를 사용하여 첫 번째 필드를 계산 한 다음 그룹화를 위해 그룹화하여 그룹화하는 것처럼 보입니다. 누군가 이것에 대해 더 많은 통찰력을 줄 수 있습니까?
- 답변 # 1
관련 자료
- sql - 프로 시저의 if 문 내에서 MySQL 선택
- mysql - select 문이있는 여러 데이터를 삽입하고 해당 select 문의 FROM 테이블은 삽입하려는 테이블과 같습니다
- excel formula - "IF 문"을 사용하여 범위에서 숫자를 선택하려면 어떻게합니까?
- postgresql - SELECT 문에서 SQL 정규식 (LIKE) 사용
- Javascript if else 문이 필터를 기반으로 코드를 실행합니다
- javascript - 요소를 클릭하려면 어떤 요소 값을 선택해야합니까
- sql - PSQL은 a와 b가 모두 존재하는 경우 a와 b를 순서대로 선택하지만 a와 b를 모두 선택하지는 않습니다
- python - 왜 내 데코레이터가이 순서대로 코드를 실행합니까?
- javascript - select 옵션을 비활성화하기 위해 if 문을 만드는 방법은 무엇입니까?
- python - 하나의 select 문에서 최소 및 최대 사용 (버기 출력?)
- mysql - select 문을 기반으로 여러 행을 업데이트하는 방법은 무엇입니까?
- sql server - sql 구문 오류 - select distinct, order by 표현식이 선택 목록에 나타나야합니다
- oracle - sql - 순서대로 여러 개의 최대 값을 선택
- javascript - AngularJS가 함수와 그 하위 함수를 순서대로 실행하도록하는 방법
- select 문을 사용하여 SQL 2008 r2에서 누락 된 데이터를 처리하는 방법은 무엇입니까?
- Oracle Sql - oracle sql - 주문이 반복되는 열 id 당 한 줄씩 나열하여 주문이 둘 이상인 고객을 선택하십시오
- postgresql - select 문 (postgres) 내에 계산 저장
- excel - Select Case 문으로 여러 열 평가
- java - 명령문 제한 조건을 실행할 수 없습니다 [null] ManyToMany 연관 테이블
- mysql - "SELECT"문 결과를 리턴하는 함수 작성
관련 질문
- sql : 큰 쿼리에서 첫 번째 값을 가져오고 나머지를 남기는 방법
- sql : 날짜가 90 일 전 이상일 때 데이터 가져 오기
- mysql : BigQuery SQL에서 리터럴과 별칭 사이의 공백 누락
- BigQuery 향상 -성능 조정 SQL 쿼리
- sql : 두 행 **와 ** 차이점이있는 필드의 이름은 BigQuery에서의 차이점을 얻는 방법?
- sql : 조건을 충족하는 행의 시간 기간 동안 타임 스탬프로 행을 선택하는 방법
- sql : 두 테이블에서 파티션을 계산하고 인덱스를 적게 사용하거나 BigQuery의 인덱스를 사용하여
- sql : 동시 쿼리를위한 BigQuery 할당량
- sql : BigQuery, array_agg를 사용하여 쉼표로 구분 된 결과를 만듭니다
- sql : 최대 값을 기반으로 구조체 배열에서 단일 값을 반환합니다.
SQL 표준에 따르면
GROUP BY
SELECT
전에파싱 .그러나 이것은 데이터베이스 사이에서 어렵지 않은 규칙이 아닙니다. BigQuery가 수행하는 작업은
그러나 쿼리 구문 분석과 실행을 혼동하지 마십시오. 실행은 매우 복잡한 병렬 지향 비순환 그래프를 통해 이루어집니다. 여기서 일어나는 일은 단순히 BigQuery 파서가 사용자가SELECT
에서 열 별명을 판별하는 것입니다. . 그런 다음GROUP BY
에서 이러한 별명을 허용합니다. . Postgres 및 모든 파생 데이터베이스와 같은 다른 데이터베이스도이 작업을 수행합니다.GROUP BY
에서 테이블 별칭을 사용할 수 있도록하는 것입니다. .