예를 들어 전체 데이터 중에서 특정 제품들만 집계를 하는 경우라고 가정해보자.
이렇게 쿼리를 작성할 수 있을 것이다.
select product_id, count(1) as count_sale
from tbl_sales
where 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, 734,
406, 670, 708, 870, 873, 690, 741, 475, 479, 251,
682, 886, 661, 710, 746, 871, 476, 909, 482, 1173,
891, 489, 737, 853, 685, 963, 665, 722, 712, 421,
474, 466, 750, 500, 694, 32, 872, 497, 998, 744, 473,
916, 88, 887, 588, 932, 915, 486, 485, 733, 578,
1296, 693, 738, 72, 582, 933, 488, 619, 687, 480, 878,
478, 9, 713, 943, 764, 95, 1184, 730, 1386, 920,
462, 56, 935, 745, 467, 695, 699, 876, 715, 938,
967, 951, 751, 409, 672, 570, 423, 1208, 706, 1185, 1166,
491, 681, 972, 1170, 1171, 1172, 1169]) product_id
)
select
s.product_id
, count(1) as cnt_sale
from tbl_sales s
join product_list p on s.product_id = p.product_id
group by 1
'분석 > 데이터분석' 카테고리의 다른 글
[BigQuery] 최신의 데이터를 가져오는 3 가지 방법 (0) | 2024.12.09 |
---|---|
그룹별로 랜덤 sampling 하기 (0) | 2024.08.27 |
피처 스케일링 (Feature Scaling) (0) | 2024.05.22 |
머신러닝에서 인코딩 방법 (0) | 2024.05.22 |
회귀모델의 성과 측정 (0) | 2024.05.22 |