Zombies
Zombies

Reputation: 25912

SQL group by: using where-clause logic to filter results based on aggregate functions

I have a basic group by/avg statement:

select url, avg(contentping+tcpping), count(*) from websites ws, ping pi 
where ws.idwebsite = pi.idwebsite and errortype is null
group by url order by avg(contentping+tcpping) asc;

What I want to do now is to drop any results which have a higher than average ping of 500. How can I do this...?

Upvotes: 3

Views: 5608

Answers (1)

Eric Petroelje
Eric Petroelje

Reputation: 60559

just add a having clause:

select url, avg(contentping+tcpping), count(*) from websites ws, ping pi 
where ws.idwebsite = pi.idwebsite and errortype is null
group by url 
having avg(contenetping+tcpping) < 500
order by avg(contentping+tcpping) asc;

Upvotes: 13

Related Questions