【发布时间】:2019-02-04 02:40:33
【问题描述】:
我有一张表格,其中包含有关城市之间航班的信息,如下所示:
origin_city dest_city time
Dothan AL Atlanta GA 171
Dothan AL Atlanta GA 171
Dothan AL Elsewhere AL 2
Dothan AL Elsewhere AL 2
Dothan AL Elsewhere AL 2
Boston MA New York NY 5
Boston MA City MA 1
New York NY Boston MA 5
New York NY Boston MA 5
New York NY Boston MA 5
New York NY Poughkipsie NY 2
我想查找每个始发城市的飞行时间少于 3 小时的航班的百分比。所以结果会是这样的:
Dothan AL 60
Boston MA 50
New York NY 25
我认为可行的代码如下所示:
SELECT F.origin_city as origin_city,
((SELECT COUNT(*) FROM Flights as F2
WHERE F2.actual_time < 3) / (SELECT COUNT(*) FROM Flights as F3)) * 100
AS percentage
FROM Flights as F
GROUP BY F.origin_city
ORDER BY percentage;
GO
当我运行它时,我得到了一个起始城市列表和一个百分比列,正如预期的那样,但百分比始终为 0。我仍然对子查询很困惑(如你所见)。
【问题讨论】:
标签: sql sql-server subquery correlated-subquery