Mysql 5.7 ONLY_FULL_GROUP_BY 问题

对于mysql5.7 以上版本,默认启动ONLY_FULL_GROUP_BY模式,在不修改mysql配置的状况下,可以使用any_value()函数来抑制ONLY_FULL_GROUP_BY

例子:

select t.* from test
idnamedeptsalar
1张三开发部8000.00
2李四开发部9000.00
3王二测试部8000.00
4麻子测试部9000.00

当我们需要统计每个部门工资最高的人时:

没有使用any_value() 函数时:

select
	t.name,
	t.dept,
	max( t.salary ) 
from
	test t
GROUP BY
t.dept;

结果:

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'mineTest.t.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

使用any_value()

select
	any_value(t.name) name,
	t.dept,
	max( t.salary ) 
from
	test t
GROUP BY
t.dept;

 结果:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值