On Mon, Nov 2, 2015 at 3:14 PM, droberts <david.robe...@riverbed.com> wrote:
> Hi, I have a table that contains call records. I'm looking to get only > records for users who made the most calls over a particular time duration > in > an efficient way. > > calls() > > time, duration, caller_number, dialed_number > > > > -- query to get top 10 callers > select caller_number, count(1) from calls group by caller_number order by > calls desc limit 10 > > --my current query to get those callers > > select * from call where caller_number in (above query) > > > It works but I was hoping for something a little more efficient if anyone > has an idea. > I don't think there is anything that is "a little more efficient" (implying, only a bit harder to implement). You can probably get significantly faster by combining various forms of pre-computation and caching. It is likewise significantly more complex to implement. David J.