始める無料で始める

早期フィルタリング

Pissa 社から、データベースクエリのパフォーマンス最適化についての協力を求められました。既存のクエリが十分に効率的でなく、実行に時間がかかりすぎている可能性があるとのことです。

今回の目標は、2015年11月1日以降に行われた注文で、かつ「Veggie」カテゴリのピザのみを取得することです。

早期フィルタリングの手法を適用して、以下の SQL クエリを完成させましょう。

この演習はコースの一部です

Snowflake SQL 入門

コースを見る

演習の手順

  • filtered_orders CTE を完成させ、2015-11-01 以降に行われた注文のみに絞り込みましょう。
  • filtered_pizza_type CTE を完成させ、'Veggie' カテゴリのピザのみに絞り込みましょう。
  • filtered_orders CTE からレコードを取得しましょう。
  • filtered_pizza_type 列を使い、pizza_type_id 句で ON CTE を結合しましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

WITH filtered_orders AS (
  SELECT order_id, order_date 
  FROM orders 
  -- Filter records where order_date is greater than November 1, 2015
  ___
)

, filtered_pizza_type AS (
  SELECT name, pizza_type_id 
  FROM pizza_type 
  -- Filter the pizzas which are in the Veggie category
  ___
)

SELECT fo.order_id, fo.order_date, fpt.name, od.quantity
-- Get the details from filtered_orders CTE
FROM ___ AS fo
JOIN order_details AS od ON fo.order_id = od.order_id
JOIN pizzas AS p ON od.pizza_id = p.pizza_id
-- JOIN the filtered_pizza_type CTE on pizza_type_id
___ ___ AS fpt ON p.pizza_type_id = ___.___
コードを編集して実行