Thread: limit based on count(*)

limit based on count(*)

From
Steve Clark
Date:
Hello List,

I have a query that counts how many time an event occurs in our event_log these
are grouped by the serial number of the device that created the event. I would
like to show only the rows where the number of events exceeds some threshold.

simplified query:
select serial_no, count(*) as "restarts" from event_log where event_mesg ilike 'system sta%' and event_date >
current_date- 7 
group by serial_no order by restarts;

So what I would like to see is only the serial_nos that had more than X restarts.

Any ideas would be appreciated.

--
Stephen Clark

Re: limit based on count(*)

From
Alban Hertroys
Date:
On 22 February 2013 17:01, Steve Clark <sclark@netwolves.com> wrote:

> select serial_no, count(*) as "restarts" from event_log where event_mesg
> ilike 'system sta%' and event_date > current_date - 7
> group by serial_no order by restarts
>


select serial_no, count(*) as "restarts" from event_log where event_mesg
ilike 'system sta%' and event_date > current_date - 7
group by serial_no
having count(*) > X
order by restarts

--
If you can't see the forest for the trees,
Cut the trees and you'll see there is no forest.

Re: limit based on count(*)

From
Russell Keane
Date:
> Hello List,
>
> I have a query that counts how many time an event occurs in our event_log=
 these are grouped by the serial number of the device that created the even=
t. I would like to show only the rows where the number of events exceeds so=
me threshold.
>
> simplified query:
> select serial_no, count(*) as "restarts" from event_log where event_mesg =
ilike 'system sta%' and event_date > current_date - 7 group by serial_no or=
der by restarts;
>
> So what I would like to see is only the serial_nos that had more than X r=
estarts.
>
> Any ideas would be appreciated.
>
> --
> Stephen Clark

Could you not do:

Select * from=20
(
select serial_no, count(*) as "restarts" from event_log where event_mesg il=
ike 'system sta%' and event_date > current_date - 7 group by serial_no orde=
r by restarts
)
Where "restarts" > X;

Regards,

Russell Keane
INPS

Follow us on twitter | visit www.inps.co.uk

Re: limit based on count(*)

From
Russell Keane
Date:
> select serial_no, count(*) as "restarts" from event_log where event_mesg =
ilike 'system sta%' and event_date > current_date - 7
> group by serial_no
> having count(*) > X
> order by restarts
I think having is the better option.

Re: limit based on count(*)

From
Steve Clark
Date:
On 02/22/2013 11:14 AM, Russell Keane wrote:
>
>
> > select serial_no, count(*) as "restarts" from event_log where event_mesg ilike 'system sta%' and event_date >
current_date- 7 
> > group by serial_no
>
> > having count(*) > X
>
> > order by restarts
>
> I think having is the better option.
>
Thanks all, didn't know about having - I am noobie with SQL.

--
Stephen Clark