참고 : BigQuery의 수학함수 BigQuery에서 사용할 수 있는 함수들은 이미 정리가 잘 되어 있지만 자주 쓰는 올림, 내림, 반올림은 기억도 해둘 겸 따로 정리해둔다. 1️⃣ 올림(Ceil, Ceiling) -- 입력 받은 값보다 작지 않은 정수를 반환 -- ex. 2.0 -> 2.0, 3.5 -> 4.0, 6.1 -> 7.0 CEIL(X) CEILING(X) 2️⃣ 내림(Floor) -- 입력 받은 값보다 크지 않은 정수를 반환 -- ex. 2.0 -> 2.0, 3.5 -> 3.0, 6.1 -> 6.0 FLOOR(X) 3️⃣ 반올림(Round) -- 입력 받은 값과 가까운 정수를 반환 -- ex. 2.0 -> 2.0, 3.5 -> 4.0, 6.1 -> 6.0 ROUND(X) -- CAST ~ ..
🙋♀️ 필요한 부분만 잘라서 집계해주세요! 👩💻 ... 네? 기본적으로 있는 데이터 그대로 가공하지 않고 집계하는 게 DW, DM이지만 일을 하다보면 이 원칙이 통하지 않을 때가 있다. 이번에도 그랬다. 상품 코드를 기준으로 TRANSACTION을 집계하는데, 해당 스키마에 아주 길고 긴 상품 설명 + 상품명 형태의 값이 들어오고 있었다. 정말 다행히 설명 + 띄어쓰기 + 상품코드의 일관성 있는 형태여서 SQL을 통해 원하는 값을 집계할 수 있었다. ✅ 빅쿼리에서 SPLIT 함수 써서 값 자르기 SPLIT('자를 STRING', '기준이 되는 문자') 사용법은 위와 같다. 예를 들어, SELECT SPLIT('이것은 상품설명 입니다 ABC12345', ' '); 위와 같이 쓰면 공백을 기준으로 3개로..
🕰 TIMESTAMP의 함정 전 세계 쇼핑몰 데이터를 수집하는 프로젝트를 진행하며 기묘한 상황과 마주쳤다. 분명 같은 테이블의 같은 PK를 가진 같은 데이터인데, 책임님이 조회하셨을 때와 내가 조회했을 때의 CREATED_AT 시간이 달랐던 것! 알고보니 책임님이 쓰시는 DBeaver와 내가 조회한 BigQuery의 Time Zone 설정이 달라서 TIMESTAMP 타입의 CREATED_AT도 각자의 시간대에 맞게 변환된 값이었다. 여러 시간대의 날짜, 시간 값을 사용하기 위해서는 TIMESTAMP 형에 원하는 Time Zone을 세팅해줘야 한다. ✅ BigQuery Time Zone 세팅 BigQuery에서는 다음과 같은 쿼리를 통해 Time Zone을 설정해줄 수 있다. SELECT CURRENT_D..