mybatis中使用oracle数据库查询聚合函数的方法

话不多说直接上代码

select  deptart,sum(salary)  from user group by deptart

sum():将选中的列相加

avg():求平均值

max():求最大值

min():最小值

count():求数据个数

group by:分组

其中有几点容易犯的错误

1:在查询中出现的字段(不包括聚合函数)一定要出现在group by后面不然会出现

ORA-00979: not a GROUP BY expression 错误也就是非group by表达式错误

2:group by后面不能使用where 只能使用having 而mybatis中没有这个标签

我们可以使用if标签来判断是否有判断条件然后再if中直接写出having

<if test="orgId!= null and orgId!= ">
	HAVING  org_id= #{orgId}
</if>

值得注意的是在having后出现的字段也必须出现在group by的后面

3:

ORA-00936: missing expression

这个错误是由于多加了一个逗号或少加了一个逗号引起的,写好sql之后可以在数据库中先试一遍再放到项目里这样就会少很多问题了

经验分享 程序员 微信小程序 职场和发展