일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 수학적해석학
- BigQuery
- 독후감
- 인과추론 무작위 실험
- 네카라쿠배당토
- 데이터분석
- DataAnalyst
- Bayesian
- 베이지안통계
- recommendation system
- 인과추론개요
- SQL
- 벡터
- 나의서양미술순례
- 데이터분석가
- Recsys
- 글또10기
- 데이터 분석
- 선형대수학
- 잠재적결과
- chatGPT
- 티스토리챌린지
- 오블완
- CausalInference
- 코세라
- 실무로통하는인과추론
- 인과추론
- 빅쿼리
- 데이터분석가 코딩테스트
- mathematicalthinking
- Today
- Total
목록Data/SQL - Bigquery (4)
Derek 의 데이터 분석 성장기

1. Grouping Sets GROUPING SETS 함수는 복잡한 집계 쿼리를 단순화하고 여러 그룹화 수준에서 집계를 한 번에 계산할 때 유용한 함수입니다. 일반적으로 GROUP BY 를 사용하여 해결할 수 있지만, GROUP BY 를 사용하다가 더 세분화해서 사용할 수 있는 쿼리는 없을까? 라고 생각하면 GROUPING sets를 사용하면 됩니다. 예시로, GROUPING SETS와 일반 GROUP BY의 차이점은 여러 그룹화 수준을 한 번에 처리할 수 있는 능력입니다. 이와 같은 테이블이 존재한다고 가정해보자. 그리고, GROUP BY 를 활용하여 국가의 월별 매출을 조회해보고 싶다고 하자. ** 아래 데이터는 샘플** 실제로 빅쿼리상에서는 해당과 같이 날렸지만 STRUCT 에러로 인해서 조회가..
1. UDF SQL에서도 자주 사용하는 처리 방식을 함수로 만들 수 있다. 예를 들어, CASE WHEN 문을 매 쿼리마다 적용해야 한다. CASE WHEN x>= 1 and x = 3 and x 이 구문을 모든 쿼리 문마다 적용해야 한다고 생각해보자. 반복 작업으로 업무 효율성 및 가독성이 떨어진다. 이를 해결하기 위해 빅쿼리에는 사용자 정의 함수가 존재한다. 말 그대로 내가 함수를 직접 만드는것 이다.CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64) # 함수 선언 : (변수명과 타입 지정)RETURNS FLOAT64 # 리턴에는 타입을 지정, 아래부터는 사용하고 싶은 함수명AS ( (x + 4) / y); # 반드시 함수가 끝나고 나서는 ; 이 ..
1. QUALIFY SQL을 활용하다보면, WINDOW 함수를 사용하게 된다. Window 함수의 장점은 RANK, ROW OVER 이나 RANGE 를 걸어 RAW 데이터들을 용이하게 조작할 수 있다. 단점이라고 하면 서브쿼리(Subquery) 를 활용하여, 항상 윈도우 함수를 적용한 칼럼에 조건을 줘야 한다는 단점이 존재한다. EX) : X 를 Group by 하였을때, y 기준으로 가장 높은 ranking 을 적용하는 쿼리, 그리고 그 중 랭킹이 1등인 것을 추출하는 쿼리 SELECT * FROM ( SELECT *, RANK() OVER(PARTITION BY x ORDER BY y) as rnk ) WHERE rnk = 1 근데, 빅쿼리에서는 이 Window 함수에 바로 조건을 설정할 수 있는 함..
1. Pivoting SQL을 활용하다보면, Pivoting이 필요한 시점이 있다. 대표적으로, 한 칼럼안에 있는 다중 ROW 값들을 다중 Column 으로 전환하고 싶을 때 이다. 예를 들어, 우리 서비스에서 발생한 모든 Event LOG 를 파악하고 싶다. Event 라는 칼럼 안에 500개가 존재하는데 하나하나 모두 CASE WHEN 문으로 활용해서 할수 없기 때문이다. GROUP BY COUNT도 유저 별로 다중 RAW를 만드는 테이블 형식 일뿐, 칼럼형태론 변환하지 못한다. Pandas 에서 Pivot 하는 함수가 존재하지만, Bigquery 에서도 존재한다. 빅쿼리에서 제공하는 Sample Data를 기준으로 따라가보자. ## SAMPLE : PIVOTING 할 칼럼을 정함. 열로 분할할 것들..