博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

当Where遇到sum()和group by的解决方法

Posted on 2015-02-04 16:57  时间之外  阅读(1035)  评论(0编辑  收藏  举报
今天我们来说一下 在MYSQL中 当 where 遇到需要用 SUM()函数 做判断,并且需要分组的时候 应该怎么解决
我想大家都应该了解 where sum(score) group by name 这样是错误的 ,但是 怎么写是对的呢?下面我们就来看一下
id name typescore
1 张三 语文 99
2 李四 语文 88
3 张三 数学 99
4 李四 数学 88
5 张三 化学 100
6 刘二 语文 100
根据上表 用 一句SQL语句 查出 总分大于150 的学生资料 并按总分由高到低排序:
select name, sum(score) from scroe group by name having sum(score)>150 order by sum(score) desc

这就是一种解决方法;就是将where条件 换成having 并且应该注意 要先分组(group by)再判断。

转自http://blog.163.com/alex_wdd/blog/static/18610010720106751223985/