CTE로 데이터 필터링하기
CTE의 가장 효과적인 활용법 중 하나는, 이후 쿼리에서 사용하기 전에 CTE 안에서 데이터를 미리 필터링하는 거예요. 이렇게 하면 최종 쿼리로 가져오는 데이터가 줄어들어 전체 쿼리 비용을 낮출 수 있어요. 이 쿼리는 가격이 $150을 초과하는 상품이 포함된 주문의 주문 상태를 찾는 데 도움이 됩니다.
이 연습은 강의의 일부입니다
BigQuery 입문
연습 안내
- 가격이 $150을 초과하는 주문만을 위한 새로운 CTE
orders를 만들고,order_items를 UNNEST 해서price열을 찾아주세요. - CTE의 결과를
ecomm_order_details데이터셋과 JOIN 하여order_status의 개수를 구하고, 상태별로 주문 수를COUNT로 집계하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
-- Add the correct items to finish our filtered CTE
-- Create a new CTE with the name orders
WITH ___ AS (
SELECT order_id
-- Add the correct column for the order item details
FROM ecommerce.ecomm_orders, UNNEST(___) items
-- Fill in the correct column for the item price
WHERE items.___ > 150
)
SELECT
-- Aggregate to find the total number of orders
___(order_id),
-- Add the column for the status of the order
___
FROM ecommerce.ecomm_order_details od
JOIN orders o USING (order_id)
GROUP BY order_status