SELECT *
FROM (SELECT TOP 3 COUNT(*) AS numberofflights, origin, dest
FROM flights
WHERE origin = 'EWR'
GROUP BY origin, dest
UNION
SELECT TOP 3 COUNT(*) AS numberofflights, origin, dest
FROM flights
WHERE origin = 'LGA'
GROUP BY origin, dest
) A
ORDER BY 2,1 desc
(
select count(flight) as numberOfFlights, origin, dest
from flights
where origin = 'EWR'
group by origin, dest
order by numberOfFlights desc limit 3
)
union all
(
select count(flight) as numberOfFlights, origin, dest
from flights
where origin = 'LGA'
group by origin, dest
order by numberOfFlights desc limit 3
)
对于sql server:
select * from
(
select top 3 count(flight) as numberOfFlights, origin, dest
from flights
where origin = 'EWR'
group by origin, dest
order by numberOfFlights desc
) t1
union all
select * from
(
select top 3 count(flight) as numberOfFlights, origin, dest
from flights
where origin = 'LGA'
group by origin, dest
order by numberOfFlights desc
) t2
3条答案
按热度按时间sqougxex1#
在你的评论之后编辑这个。
bhmjp9jg2#
有两个相同的查询通过
union
. 因为union
删除重复项,这相当于:不
union
是必要的。你的版本只是增加了很多不必要的开销。bqjvbblv3#
对于mysql:
将每个查询都用括号括起来:
对于sql server: