2017-06-10 12 views
-1

sqlを使用してコーディングを開始しました。これは、私が苦労している相関サブクエリの例です。ここで起こっていただきました!誰もが素人用語で説明していただけます。SQLを使用した相関サブクエリ

SELECT id 
FROM flights AS f 
WHERE distance > (SELECT AVG(distance) 
        FROM flights 
        WHERE carrier = f.carrier); 

答えて

0

あなたのクエリは距離がその特定のキャリアの平均距離よりも大きいすべてのフライトを返します。

例:スイスの

id flight  carrier distance 
1 Brussels Swiss  200 
2 New York Swiss  2000 
3 Berlin  Lufthansa 300 
4 London  Lufthansa 400 

平均距離は1100で、ルフトハンザの350

であり、あなたのクエリが返す:

2 
4 

フライト2がキャリアスイスとの距離であります2000年はスイスと1100の平均距離よりも大きい。

Fligh t 4は運送業者のルフトハンザで、その距離400はルフトハンザの平均距離350より大きくなっています。

1

あなたの質問は、(個人的に)わかりやすく、以下の意味的に同じです。 (私はそれも分数的に高速だと思う)...

SELECT id 
    FROM flights g 
    JOIN 
    (SELECT carrier 
      , AVG(distance) avg_distance 
     GROUP 
      BY carrier 
    ) x 
    ON x.carrier = f.carrier 
    AND x.distance > avg_distance; 
+0

あなたはどちらが速いと思いますか?あなたの質問または私が書いたもの? –

+0

あなたが書いた質問を理解できます。ありがとう –

関連する問題