시작하기무료로 시작하기

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
코드 편집 및 실행