[BigQuery] 특정 list의 데이터를 테이블 처럼 사용하기
예를 들어 전체 데이터 중에서 특정 제품들만 집계를 하는 경우라고 가정해보자. 이렇게 쿼리를 작성할 수 있을 것이다. select product_id, count(1) as count_salefrom tbl_saleswhere product_id in (123,23, 24, ...., 432)group by product_id 그런데, 해당 product_id 가 몇 백개정도로 만다거나, 쿼리의 여기 저기 쓰여야한다면 위의 쿼리 방식은 매우 불편한 방식이 된다. 그래서 Bigquery에서는 이런 식으로 작성하면 편리하다. with product_list as ( select product_id from unnest([ 684, 728, 686, 468, 662, 729, 451, 709, 617, ..
2025. 6. 18.
[BigQuery] 연속된 일자 생성하기
빅쿼리에서는 generate_date_array 라는 함수를 사용하면, 일련의 날짜 데이터에 대한 배열을 결과 값으로 얻을 수 있다. 이를 응용하면, 특정 기간안에 주별 데이터(주별 시작일, 연도, 주넘버)를 구하여 여러 쿼리에 활용할 수 있다. declare from_date, to_date date; set from_date = date_sub('2023-01-01', interval 375 day); set to_date = '2023-12-31'; select date_trunc(date(base_dt), week(sunday)) as current_dd , format_date('%Y', base_dt) as week_year , format_date('%U', base_dt) as week_n..
2023. 10. 10.
[BigQuery] 빅쿼리에서 values 절을 구현해보자.
MySQL, PostgresSQL 등에서는 Values 절을 이용하여 아래와 같이 외부 text를 테이블 처럼 사용할 수 있다. with list (id, name) as ( values (1004007, '홍길동'), (1002147, '장동건'), (1004493, '현빈'), (1007978, '이서진'), (1005218, '원빈'), (1005507, '이병헌') ) select id , name from list MySQL 에서는 구문이 살짝 다르긴 하다. 요렇게 `ROW` 라는 키워드를 붙여줘야 한다. values ROW (1004007, '홍길동'), 하지만 BigQuery에서는 Values 를 위처럼 사용할 수는 없다. 그래서 아래와 같이 사용해야 한다. (1) 컬럼이 하나인 경우 sel..
2023. 2. 20.