假设我有一张名为 COFFEE 的表格,其中显示了公交车站和公交车站 10 个街区内的所有咖啡店:
BusStationID| CoffeeShopID | Distance (in city blocks)
1|2103|2
1|2222|2
1|8864|7
1|9920|5
1|3544|2
1|4830|2
1|4823|6
1|9561|2
7|6262|2
7|8561|10
7|9510|5
7|2744|1
7|4223|9
7|5960|3
[编辑:明确问题是如何通过非程序查询来做到这一点]
而且我必须编写一个查询(而不是 proc)来显示每个公交车站到最近的五家咖啡店的平均距离。
我可以找到特定巴士站的前 5 家最近的咖啡店:
select avg(top5.distance) as AvgDistToFiveClosest
from
(
select top 5 distance from COFFEE where busstationid = 1
order by distance
) as top5
但是如何将其连接为子查询并使 AvgDistToFiveClosest 成为我的主查询中返回的列:
select BusStationId, AvgDistToFiveClosest
from COFFEE...
??????
鉴于上面的示例数据,查询应返回:
BusStationID | AvgDistToFiveClosest
1 | 2
7 | 4