Menu
CoddyTech

復習 - WITHクエリ

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

challenge icon

チャレンジ

簡単

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

  • devices_specs: device_id, width, height, num_features, opinion
  • devices_score: device_id, score

デバイスの品質は (width/height)*num_features で測定されます。

過大評価されているデバイスをすべて見つけます。デバイスの opinion が品質の平均より大きく、デバイスの score が平均品質より小さいデバイスをすべて取得します。device_id のみを返してください。

解決するには、WITH句を使って平均品質を計算するサブクエリを作成し、それをメインクエリで再利用します。

自分で試してみよう

-- ステップ 1: 1 つの平均値を保持する一時的な結果セットに名前を付ける
WITH avg_quality AS (
    SELECT ____ AS avg_q
    FROM devices_specs
)
-- ステップ 2: 2 つのデバイステーブルを結合し、一時的な結果セットを結合する
SELECT dsp.device_id
FROM devices_specs dsp
INNER JOIN devices_score dsc ON ____
INNER JOIN avg_quality aq
-- ステップ 3: その平均値を挟んで反対側に位置するデバイスを残す
WHERE ____

基礎のすべてのレッスン

自分で練習してみよう: SQLプレイグラウンド