七郎's JavaBlog

草木竹石皆可為劒。至人之用人若鏡,不將不迎,應而不藏,故能勝物而不傷。
posts - 60, comments - 14, trackbacks - 0, articles - 0

GROUP BY and HAVING用法

Posted on 2007-04-27 16:48 七郎归来 阅读(9399) 评论(1)  编辑  收藏
SELECT AVG(ticket_key) , ticket_title
FROM srweb_ticket_ticket
GROUP BY ticket_title

以上这句是按照投票的标题排序,体现在GROUP BY ticket_title,执行完上序之后得出如下的结果
328       苹果
328       葡萄
327       西瓜

如果加上having条件的话会出现如下的结果,having是出现在group by之后的条件的
SELECT AVG(ticket_key) , ticket_title
FROM srweb_ticket_ticket
GROUP BY ticket_title having AVG(ticket_key)>327

328       苹果
328       葡萄

如果再加上where条件的话会出现下面的结果
SELECT AVG(ticket_key) , ticket_title
FROM srweb_ticket_ticket
where ticket_title not in('葡萄') GROUP BY ticket_title having AVG(ticket_key)>327

328       苹果

通过分析,式子。。首先是执行where条件去掉一些不满足的,之后通过group by按照类型进行分组运算,之后在分组求了数的基础上再用having去掉一些数据

Feedback

# re: GROUP BY and HAVING用法  回复  更多评论   

2011-10-17 16:33 by likydba
如果我group by 后面不用 having 我在where语句后面加一个判断 效果应该一向吧。
类似于:

select count(*) as count from test group by port having count< 10

select count(*) as count from test where count < 10 group by port

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问