-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;
你认为哪一个更快?你的查询还是我写的? –
我可以理解你写的查询。谢谢 –