-1
我剛開始使用sql進行編碼。這是一個與之相關的子查詢的例子。任何人都可以請通俗地說解釋什麼怎麼回事:使用SQL的相關子查詢
SELECT id
FROM flights AS f
WHERE distance > (SELECT AVG(distance)
FROM flights
WHERE carrier = f.carrier);
我剛開始使用sql進行編碼。這是一個與之相關的子查詢的例子。任何人都可以請通俗地說解釋什麼怎麼回事:使用SQL的相關子查詢
SELECT id
FROM flights AS f
WHERE distance > (SELECT AVG(distance)
FROM flights
WHERE carrier = f.carrier);
您的查詢返回的所有航班,在距離比特定運營商的平均距離更大。
一個例子:
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的平均距離。
您的查詢在語義上與以下內容相同,我個人發現它更易於閱讀。 (我懷疑它也快得多)...
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;
你認爲哪一個更快?你的查詢還是我寫的? –
我可以理解你寫的查詢。謝謝 –