複雑な分析のためのサブクエリ
メニューを表示するにはスワイプしてください
サブクエリは、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 );
サブクエリは、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;
1. サブクエリはSQLのどこで使用できますか?
2. サブクエリを使用する主な利点は何ですか?
3. クエリの空欄を埋めてください。全商品の平均総売上を上回る総売上を持つ商品をすべて抽出してください。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 4. 章 1
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 4. 章 1