• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

数据库(分组函数)

mysql 搞代码 4年前 (2022-01-09) 12次浏览 已收录 0个评论

分组函数:对表中一组记录进行操作,每次只返回一个结果。 常用的函数有:MIN,MAX,SUM,AVG,COUNT等 MIN和MAX返回每组的最小和最大。 eg:select min(salary),max(salary) from employees; SUM和AVG函数分别返回总和平均。 eg:select sum(salary),avg(salary)

分组函数:对表中一组记录进行操作,每次只返回一个结果。

常用的函数有:MIN,MAX,SUM,AVG,COUNT等

MIN和MAX返回每组的最小值和最大值。

eg:select min(salary),max(salary) from employees;

SUM和AVG函数分别返回总和平均&#本文来源gaodai$ma#com搞$代*码6网20540;。

eg:select sum(salary),avg(salary) from emloyees;

count函数主要返回每组的记录条数。

eg:select count(*) from employees where job_id=’ ‘;

GROUP BY…HAVING 子句的使用。

组函数忽略空值,可以使用NVL,NVL2,COALESCE函数处理空值

eg:相同职位相同经理的员工的平均工资。

select job_id,manager_id,avg(salary)

from employees

group by job_id,manager_id

*GROUP BY 子句注意问题:

1.GROUP BY 子句后面的列可以不再SELECT 语句中出现。

2.SELECT 子句中出现的 “非分组函数 ” 必须在GROUP BY子句中出现

HAVING子句。

错误示例:

select job_id,max(salary)

from employees

where max(salary)>=8888

group by job_id;

原因是查询语句的执行顺序是:from where group by select order by

正确示例:

select job_id,max(salary)

from employees

group by job_id

having max(salary)>8888;

总结SELECT语句执行过程:
– 通过FROM子句中找到需要查询的表;
– 通过WHERE子句进行非分组函数筛选判断;
– 通过GROUP BY子句完成分组操作;
– 通过HAVING子句完成组函数筛选判断;
– 通过SELECT子句选择显示的列或表达式及组函数;
– 通过ORDER BY子句进行排序操作。


eg:

select department_id,max(salary)

from employees

where department_id between 30 and 90

group by department_id

having max(salary)>8888

order by max(salary);




搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:数据库(分组函数)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址