始める無料で始める

共通テーブル式(CTE)

コンサルティング先の企業 Pissa が、プロモーションキャンペーンの実施を計画しています。

キャンペーンでは、合計注文数をもとに最も人気のあるピザをアピールする予定です。

また、最も安価なピザを使ったお得なセットメニューの導入も検討しています。

データエンジニアとして、この2種類のピザを特定しましょう。

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

Snowflake SQL 入門

コースを見る

演習の手順

  • most_ordered という名前の CTE を作成し、結果を 1 件に絞り込みます。
  • cheapest_pizza という名前の CTE を作成し、サブクエリを使って最低価格を求め、最も安いピザを絞り込みます。
  • pizza_id CTE から total_qtymetricmost_ordered としてエイリアス)を選択するクエリを完成させます。
  • pizza_id CTE から pricemetriccheapest_pizza としてエイリアス)を含めます。列の順序を維持してください。

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

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

-- Create a CTE named most_ordered and limit the results 
___ ___ ___ (
    SELECT pizza_id, SUM(quantity) AS total_qty 
    FROM order_details GROUP BY pizza_id ORDER BY total_qty DESC
    ___
)
-- Create CTE cheapest_pizza where price is equal to min price from pizzas table
, ___ ___ (
    SELECT pizza_id, price
    FROM pizzas 
    WHERE price = (SELECT ___(price) FROM pizzas)
    LIMIT 1
)

SELECT pizza_id, 'Most Ordered' AS Description, total_qty AS metric
-- Select from the most_ordered CTE
FROM ___
UNION ALL
SELECT pizza_id, 'Cheapest' AS Description, price AS metric
-- Select from the cheapest_pizza CTE
FROM ___
コードを編集して実行