Menu
Coddy logo textTech

Built-In Aggregate Part 2

CoddyのSQLジャーニー「基礎」セクションの一部 — レッスン 35/72。

時には、集計関数をより複雑な方法で使用する必要があり、各行を集計値と比較するような場合があります。ここでネストされたクエリが便利です。

個別の行と集計値を組み合わせた計算を実行したい場合、ネストされたクエリを使用する必要があります。その理由はこちらです:
これは動作しません:

SELECT value + MIN(value)
FROM table1

その理由は、集計関数が列全体に対して動作するのに対し、'value' 参照が行ごとに動作しようとしているからです。これを解決するために、ネストされたクエリを使用します:

SELECT value + (SELECT MIN(value) FROM table1)
FROM table1

これは、ネストされたクエリ (SELECT MIN(value) FROM table1) が最初に実行され、単一の値を返し、それが各行のメインクエリで使用できるためです。

ネストされた集計の一般的な使用例:
1. 各値を平均値と比較する

2. 合計に対するパーセンテージの計算

3. 最大値または最小値からの差の求め方

challenge icon

チャレンジ

簡単

利用可能なテーブルと列:

  • <strong>items</strong>: <strong>id</strong>, <strong>price</strong>

各アイテムの価格が全アイテムの平均価格をどのくらい上回っているかを計算します。アイテム ID、その価格、および平均からの差を表示します。差の列を diff_from_avg と名付けます。

結果を差によって降順で並べ替えます。

チートシート

個別の行を集計値と組み合わせる場合、ネストされたクエリを使用してください。集計関数は全体の列で動作するのに対し、通常の列は行ごとに動作するためです。

これは動作しません:

SELECT value + MIN(value)
FROM table1

代わりにネストされたクエリを使用してください:

SELECT value + (SELECT MIN(value) FROM table1)
FROM table1

ネストされたクエリが最初に実行され、各行でメインクエリで使用できる単一の値を返します。

一般的な使用例:

  • 各値を平均と比較する
  • 合計に対するパーセンテージを計算する
  • 最大値または最小値からの差分を見つける

自分で試してみよう

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン