今天我们来说一下 在MYSQL中 当 where 遇到需要用 SUM()函数 做判断,并且需要分组的时候 应该怎么解决
我想大家都应该了解 where sum(score) group by name 这样是错误的 ,但是 怎么写是对的呢?下面我们就来看一下
id | name | type | score |
---|---|---|---|
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/