Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 複雑な分析のためのサブクエリ | データ分析のための高度なSQL
データ分析のためのSQL

book複雑な分析のためのサブクエリ

メニューを表示するにはスワイプしてください

サブクエリは、SQLにおける強力な機能であり、1つのクエリの中に別のクエリを埋め込むことが可能です。この手法により、個々の値を集計値と比較したり、動的な条件に基づいてフィルタリングしたりするなど、複雑な分析が可能になります。

例えば、全顧客の平均購入額を上回る合計購入額を持つ顧客を見つけたい場合を考えます。平均値を別途計算してクエリに挿入する代わりに、サブクエリを使うことで、1つのステートメントで両方の処理を実現できます。このアプローチにより、SQLは簡潔読みやすく、データの変化にも柔軟に対応できます。

12345678910111213
-- Find customers with total purchases above the average SELECT c.customer_id, c.first_name, c.last_name, SUM(s.total_amount) AS total_purchases FROM customers c JOIN sales s ON c.customer_id = s.customer_id GROUP BY c.customer_id, c.first_name, c.last_name HAVING SUM(s.total_amount) > ( SELECT AVG(total_purchases) FROM ( SELECT SUM(total_amount) AS total_purchases FROM sales GROUP BY customer_id ) AS customer_totals );
copy

サブクエリは、SQL文のさまざまな部分で使用できます。最も一般的なのは、SELECT句(各行ごとの値を計算)、FROM句(派生テーブルや仮想的な結果セットの定義)、WHERE句(他のクエリに基づく結果のフィルタリング)です。サブクエリを利用することで、集計やグループ化、または中間結果に依存した計算やフィルタリングを、1つのクエリ内で実行できます。これにより、分析の柔軟性が高まり、一時テーブルや手動計算の必要がなくなります。

123456789
-- Calculate total sales per product using a subquery in the FROM clause SELECT p.product_id, p.product_name, sales_totals.total_sales FROM products p JOIN ( SELECT product_id, SUM(total_amount) AS total_sales FROM sales GROUP BY product_id ) AS sales_totals ON p.product_id = sales_totals.product_id;
copy

1. サブクエリはSQLのどこで使用できますか?

2. サブクエリを使用する主な利点は何ですか?

3. クエリの空欄を埋めてください。全商品の平均総売上を上回る総売上を持つ商品をすべて抽出してください。

question mark

サブクエリはSQLのどこで使用できますか?

正しい答えを選んでください

question mark

サブクエリを使用する主な利点は何ですか?

正しい答えを選んでください

question-icon

クエリの空欄を埋めてください。全商品の平均総売上を上回る総売上を持つ商品をすべて抽出してください。

(total_sales) FROM ( SELECT (total_amount) AS total_sales FROM sales GROUP BY product_id ) AS product_totals );
product_id | product_name | total_sales
-----------+---------------------+------------
1 | Laptop Pro 15" | 2400.00
4 | Standing Desk | 700.00
10 | Smartphone | 800.00

クリックまたはドラッグ`n`ドロップして空欄を埋めてください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  1

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  1
some-alt