本文へスキップ
martechfarmDATA & TECHNOLOGY DOCS

SQL練習場 内を検索 · 全記事に戻す

SQL練習場

33 件

タイトルを選ぶと本文が開きます

SQL練習問題:正規化した獲得チャネル別にusersの件数を確認する

SQL練習問題:獲得チャネル別にusersの件数を確認する

SQL練習問題:正規化した都道府県別にusersの件数を確認する

SQL練習問題:都道府県別にusersの件数を確認する

SQL練習問題:広告クリック後7日以内の購入を集計する

SQL練習問題:商品カテゴリ別の売上と粗利を集計する

SQL練習問題:月別売上と平均注文単価を出す

SQL練習問題:獲得チャネルの表記ゆれを見つける

SQL練習問題:都道府県別の会員数を確認する

本文
記事一覧へ ↑

SQL練習問題:商品カテゴリ別の売上と粗利を集計する

難易度: 中級 / 使用テーブル: order_items, products

問題

order_itemsとproductsをJOINし、商品カテゴリ別に売上と推定粗利を集計してください。

スターターSQL

SELECT
  p.category,
  SUM(oi.quantity * oi.unit_price) AS sales_amount
FROM order_items oi
JOIN products p ON oi.product_id = p.id
GROUP BY p.category
ORDER BY sales_amount DESC;

解答例

SELECT
  p.category,
  COUNT(DISTINCT oi.order_id) AS order_count,
  SUM(oi.quantity * oi.unit_price) AS sales_amount,
  ROUND(SUM(oi.quantity * oi.unit_price * p.gross_margin_rate), 0) AS gross_profit
FROM order_items oi
JOIN products p ON oi.product_id = p.id
GROUP BY p.category
ORDER BY gross_profit DESC;

見るべきポイント

JOIN後は行数が増えやすいため、注文単位、明細単位、ユーザー単位のどの粒度で集計しているかを必ず確認します。

SQL練習場でこの問題を試す

MarTech Farmをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む