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.
​

Reply via email to