【データ抽出①】

今回はいままでに紹介した関数を使って組み合わせて実務で使うようなデータ抽出をしていきます。
1つ1つは簡単ですが、コードは関数を組み合わせてこそなので使えるようにしていきましょう!

データ(sales )

ID 日付 カテゴリ 購入者ID 購入者名 金額 送料
1 2025-07-01 家電 101 山田 32000 800
2 2025-07-01 衣類 102 佐藤 5000 500
3 2025-07-02 食品 103 鈴木 3000 300
4 2025-07-02 家電 104 田中 40000 1000
5 2025-07-03 食品 105 高橋 1500 200
6 2025-07-03 衣類 106 伊藤 7000 500
7 2025-07-04 家電 107 中村 28000 900
8 2025-07-05 衣類 108 小林 6000 500
9 2025-07-05 食品 109 加藤 2500 300
10 2025-07-06 食品 110 吉田 1800 200
11 2025-07-06 家電 101 山田 35000 1000
12 2025-07-07 衣類 102 佐藤 4500 500
13 2025-07-07 食品 103 鈴木 3200 300
14 2025-07-08 家電 104 田中 41000 1000
15 2025-07-08 食品 105 高橋 1600 200
16 2025-07-09 衣類 106 伊藤 7500 500
17 2025-07-10 家電 107 中村 29000 900
18 2025-07-10 食品 108 小林 2000 300
19 2025-07-11 食品 109 加藤 2800 300
20 2025-07-12 家電 110 吉田 36000 1000

①購入者ごとの合計金額+50000円以上の購入回数を表示

SELECT 購入者名, COUNT(*) AS 購入回数, SUM(金額) AS 合計金額
FROM sales
GROUP BY 購入者名
HAVING 合計金額 >= 50000
ORDER BY 合計金額 DESC;

実行結果

購入者名 購入回数 合計金額
田中 2 81000
山田 2 67000
中村 2 57000

②日付ごとの売上合計(家電かつ1万円以上のみ)+降順表示

SELECT 日付, SUM(金額 + 送料) AS 売上合計
FROM sales
WHERE カテゴリ = '家電' AND 金額 >= 10000
GROUP BY 日付
ORDER BY 売上合計 DESC;

実行結果

日付 売上合計
2025-07-08 42000
2025-07-12 37000
2025-07-06 36000
2025-07-02 41000
2025-07-01 32800
2025-07-10 29900
2025-07-04 28900

③家電または衣類で、金額+送料の合計が15000円以上の購入を対象に、購入者ごとの購入回数・総額・平均単価を表示。総額が高い順、同額なら平均単価が高い順に並べる。

SELECT 購入者名,
       COUNT(*) AS 購入回数,
       SUM(金額 + 送料) AS 総支払額,
       ROUND(AVG(金額 + 送料)) AS 平均単価
FROM sales
WHERE (カテゴリ = '家電' OR カテゴリ = '衣類')
  AND (金額 + 送料) >= 15000
GROUP BY 購入者名
ORDER BY 総支払額 DESC, 平均単価 DESC;

実行結果

購入者名 購入回数 総支払額 平均単価
田中 2 82000 41000
山田 2 68000 34000
中村 2 57900 28950
吉田 1 37000 37000

【解説】
複数の条件を組み合わせるときによく使うのが、
ANDとORです

論理回路によく用いられますね
AND:AかつB:AとBの両方の条件を満たすときのみ
OR:AまたはB:AかBのどちらかの条件を満たすとき

WHERE (カテゴリ = ‘家電’ OR カテゴリ = ‘衣類’) AND (金額 + 送料) >= 15000
ここの分で前半と後半に分けて考えましょう。

前半:カテゴリ = ‘家電’ OR カテゴリ = ‘衣類’
→これはカテゴリーが家電か衣類かのどちらかなら満たします
後半:上記文と、 (金額 + 送料) >= 15000
→これは上記と金額+送料が15000以上の両方なら満たします

【まとめ】
今まで開設した関数だけでもかなりの抽出は行えます!特に複数の希望に沿うためのANDとORはかなり使うので今後もの使えるようにしましょう!

 

 

 

コメント

タイトルとURLをコピーしました