내부 처리 순서
where -> group by -> having -> select -> order by
- 전체 데이터프레임에서 행 정리한 다음에
- 묶고
- 묶은 데이터프레임에서 조건 걸어 다시 행 정리하고
- 출력할 열(컬럼) 정하고
- 순서 맞춰 출력
사용 함수
SELECT / FROM / WHRER / GROUP BY+HAVING / ORDER BY
COUNT / AVG / SUM / MIN / MAX / ROUND / +(문자열) / yyyy_mm_dd(날짜)
DISTINCT / BETWEEN / AND / OR / CASE(WHEN,THEN,ELSE,END) / (서브쿼리)
FROM,INNER JOIN,ON / LEFT,RIGHT JOIN / JOIN / UNION / UNION ALL / EXCEPT / INTERSECT / CROSS JOIN /
/ AS / IN / 테이블명.컬럼명
날짜자르기
순서매기기
row_number() + partition, orderby
count() + 도 가능
null 제외하기
WHERE NOT 컬럼 is NULL;
union 시
없는 컬럼엔 null로 데이터가 들어가서 작동하는듯.
array
cloud.google.com/bigquery/docs/reference/standard-sql/array_functions?hl=ko
IN
WHERE user_id IN ('user1','user3')
(동일 WHERE user_id = 'user1' OR user_id = 'user3')
IN 연산자에 다른 SELECT 문을 넣을 수 있다.
NOT
바로 뒤에 오는 조건을 부정하는 역할을 한다. 때문에 혼자서는 되지 않는다.
ex. WHERE NOT user_id IN ('user1','user3')