user 表里面有name 和age 两个字段
name age
admin 34
admin 56
alex 38
我要对name 进行group by,
select name,age from user group by name,在我的印象中这句是报错的,因为不能
这样显示age的,我说的对吗,而且我查询资料貌似也是不可以的啊,求解答
分组函数,你group by name 前面还能select age?
对名字进行分组后,那age有多个,总得有个业务逻辑吧,比如年龄求平均(avg)或者年龄总和(sum),或者最大年龄max,最小年龄min
select name,sum(age) from user group by name
对于group,如果你age不进行分组,那么age字段就要用聚合函数。
当然错的,假设可以,那age是指什么呢?比如admin有两个,用哪个作为age呢?还是它们相加?所以需要一个聚合函数,比如max sum average等等
mysql中 如果group by name 那么 age只会选择一个,选择策略是mysql自己定的
group by 与聚合函数(sum,avg,max,count)一起才显意义,lz的意思莫非可以用order by搞定?