MySQL Forums
Forum List  »  Optimizer & Parser

Re: Top 10 airports referenced from a table of flights
Posted by: Rick James
Date: June 11, 2009 10:46PM

OR is not well optimized; UNION works better.

See if either of these works adequately:

select apid, count(*) as ct
   from (
      select src_apid as apid
         from flights
      UNION
      select dst_apid as apid
         from flights
        ) x
   group by apid
   order by count(*) desc
   limit 10;

select x.apid, sum(x.ct) as ct
   from ( select src_apid as apid, count(*) as ct
             from flights
          UNION
          select src_apid as apid, count(*) as ct
             from flights ) x
   group by apid
   order by ct desc
   limit 10;
/code]

Options: ReplyQuote


Subject
Views
Written By
Posted
Re: Top 10 airports referenced from a table of flights
2199
June 11, 2009 10:46PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.