GROUP Function
GROUP Function
概念:
所谓组查询即将数据按照某列或者某些列相同的值进行分组,然后对该数组进行组函数运用,针对每一个组返回一个结果。
note:
1.组函数可以出现的位置:select子句和having子句
2.使用group by 将行划分成若干小组
3.having子句用来限制组结果返回。
语法:
select 。。。
from 。。。
where 。。。
group by col_name,col_name
having 。。。
order by 。。。
col_name:即将数据按照colName相同的值进行分组。
组函数常见的五个: distinct取消重复行
avg:求平均值 AVG(DISTINCT | ALL | N)
count:求总数 COUNT(DISTINCT | ALL | expr | *)
max:最大值 MAX(DISTINCT | ALL |expr)
min:最小值 MIN(DISTINCT | ALL | expr)
stddev: 求标准方差 STDDEV(DISTINCT | ALL | n)
sum: 求和 SUM(DISTINCT | ALL | n)
variance: 方差 VARIANCE(DISTINCT | ALL | n)
例:
select AVG(salary),MAX(salary),min(salary),sum (salary)
FROM s_emp
WHERE UPPER(title ) like “SALES%”;
select min(last_name),max(last_name) from s_emp;
avg([distinct] column) / sum ([distinct] column):可以作用在存储数字的列上。
对字符型数据的最大值,是按照首字母有A~Z的顺序排列,越往后,其值越大。当然,对于汉字则是按照其全拼音排列的,若是首字符相同,则比较下一个字符,依次类推。
max(),min():可以作用在任意类型的数据上。
count([distinct] column | *):
count( * ) :统计表中所有行数
count(column):返回所有非空的行数
group by
- 用来将表中的行划分成若干更小的组
- 出现在select子句中,但是没有出现在组函数中的列必须出现在group by 子句中。
- 出现在group by 中的列不一定出现在select 子句中
- group by 子句中出现多列时候,表示从左到右进行分组,即先按照第一列分组,然后再第一列分好的组里面在按照第二例进行分组,依次类推。
- 限制组结果的返回一定使用having不能使用 where。
- group by 子句中的列出现在select中,表意性比较强。
1.查看各部门,职称相同的人的平均工资
select dept_id,title, avg(salary) from S_emp group by dept_id,title order by avg(salary);
2.查看个部门工资总和按照工资降序排序
select dept_id,sum(salary) s from S_emp group by s desc;
3.查找部门平均工资>1000的所有部门id和平均工资:
目标: 部门id 和avg(salary)
条件:部门平均工资
部门平均工资大于1000
select dept_id, avg(salary) from S_emp group by dept_id having avg(salary) >1000;
1查找不以vp开头的所有员工
select last_name, first_name from S_emp where title not like ‘VP%’;
2并且将他们以职称分组
group by title
3,求各个职工的工资总和
sum(salary)
4将工资总和大于五千的职称和工资显示出来
having sum(salary)>5000;
总和:select title ,sum(salary) from s_emp where title not like ‘vp%’ group by title having sum(salary)>5000;
5.查看公司经理的id,并且显示该经理领导下的领取工资最低的员工的工资,不包含那些最低工资低于1000的员工的工资及其经理id,并按工资进行排序
select manger_id ,min(salary) from s_emp
where manger_id is not null
group by manger_id
having min(salary) >1000;
select customer_id ,count(id),sum(total)
from S_ord
group by customer_id;
连接查询
select customer_id ,name,count(S_ord.id),sum(total)
from S_ord ,S_customer
where S_ord.custom_id = S_customer.id
group by customer_id ,name;
GROUP Function相关推荐
- mysql Invalid use of group function的解决办法
错误语句:SELECT s.SID, s.Sname, AVG(a.score) FROM student s LEFT JOIN sc a ON s.SID = a.SID WHERE AVG(a. ...
- “not a single-group group function”
在使用group by进行分组的时候,select 后面要查询出来的表字段 只用有两种情况: 1.在group by 子句中出现 2.或者写在聚合函数里面,像count(id)等等. 若是没有,sel ...
- ORA-00937: not a single-group group function
分析:如果查询中包含聚合函数,而所选择的列并不在聚合函数中,那么这些列就必须在GROUP BY字句中
- Invalid use of group function解决办法
在做sql习题时多次遇到这个问题,忍不了了百度了解决办法,原来还是自己的基础知识没有掌握扎实,记录下来便于以后学习~ select a.Cname,count(b.S) from Course a l ...
- SAP UI5 group function调试
Created by Wang, Jerry, last modified on Feb 05, 2015 要获取更多Jerry的原创文章,请关注公众号"汪子熙":
- ORA-00934: group function is not allowed here
问题 原因 不能在WHERE字句中使用聚合函数来限制行 分析 因为where字句只能用来对单行而不是行组进行过滤.要过滤行组,就要使用HAVING子句.
- pin function和pin group:iomuxc节点解析始末
总体框图: 设备树iomuxc节点层次 iomuxc function grouc fsl,pins = <xxxxxx>; - group - function - 层次关系说明 iom ...
- 浅谈 underscore 内部方法 group 的设计原理
前言 真是天一热什么事都不想干,这个月只产出了一篇文章,赶紧写一篇压压惊! 前文(https://github.com/hanzichi/underscore-analysis/issues/15)说 ...
- Oracle笔记 三、function 、select
Scott表下有这么几个常用的表,而且还带有数据.分别是emp.dept.salgrade: 1.查看表结构用desc desc emp; 2.空表dual,最常用的空表,如: select 2 * ...
最新文章
- linux生日_代码简介:让我们用25个Linux事实来庆祝Linux的25岁生日。
- CCS卸载安装过程及所遇问题
- VLC-DSS搭建直播系统中链路断开影响测试
- tensorflow-TFRecord 用法
- AIX Study之--AIX网卡配置管理(ent0、en0、et0)
- es 删除数据_es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?...
- Lync 2010的点击呼叫设置
- postman 怎么调试pos_SpringBoot|第十五章:基于Postman的RESTful接口测试
- 信息学奥赛一本通 1342:【例4-1】最短路径问题
- python零基础学习书-零基础学Python,不容错过的入门书籍
- 软件项目的面向对象设计、开发及管理
- vi显示行数命令和跳转到指定行
- 用tomcat6修改java内存_Tomcat 服务器内存修改
- 计算思维在计算机科学中的应用,计算思维在离散数学中的应用.pdf
- Graph Anomaly Detection with Deep Learning——基于属性图的节点异常检测
- 测屏幕坏点 android,手机屏幕坏点检测方法有哪些【详细介绍】
- 农夫安全-安全网站导航 farmsec
- 高德地图点击不同的标记,动态传入参数创建信息窗体
- Android中使用dimen定义尺寸
- qq四国军旗2.1 beat03 builde018记牌器开发思路(三)