Sql 为列中的每个值创建子查询
我希望创建一个SQL查询来回答以下问题:“哪个是每个月最常见的目的地机场?”该表的结构使其具有月份和目的地\机场列(以及其他内容),我希望查询结果如下所示: 月 目的地乌乌机场 1. 肯尼迪 2. 松懈的 3. 博斯 4. 米娅 和 等等Sql 为列中的每个值创建子查询,sql,Sql,我希望创建一个SQL查询来回答以下问题:“哪个是每个月最常见的目的地机场?”该表的结构使其具有月份和目的地\机场列(以及其他内容),我希望查询结果如下所示: 月 目的地乌乌机场 1. 肯尼迪 2. 松懈的 3. 博斯 4. 米娅 和 等等 你在正确的轨道上。然后,您可以使用窗口功能每月获取顶部: SELECT md.* FROM (SELECT Month, Destination_Airport, COUNT(*) as cnt, ROW_NUMBER() OVER
你在正确的轨道上。然后,您可以使用窗口功能每月获取顶部:
SELECT md.*
FROM (SELECT Month, Destination_Airport, COUNT(*) as cnt,
ROW_NUMBER() OVER (PARTITION BY Month ORDER BY COUNT(*) DESC) as seqnum
FROM Flight
GROUP BY Month, Destination_Airport
) md
WHERE seqnum = 1;
这将解决以下问题: 注:如果两个机场在同一个月内发生的事件数量相同,则两个机场都将显示
;with T1 as
(select distinct months,destination_airport,
count(destination_airport) as 'Counts'
from dbo.flight
group by months,destination_airport ),
T2 as
(select max(Counts) as Counts, months from T1 group by months)
select months, destination_airport from
T1 where concat(T1.months,T1.Counts) in (select concat(months,Counts) from t2)
非常感谢你!