在SQL中常用的组函数有以下几个:
-
COUNT():求出全部的记录数 --SELECT COUNT(empno) FROM emp ;
-
MAX() :求出一组中的最大值 --SELECT MAX(sal) FROM emp ;
-
MIN() :求出最小值
--SELECT MIN(sal) FROM emp ;
-
AVG() :求出平均值
--SELECT AVG(sal) FROM emp ;
-
SUM() :求和
--SELECT SUM(sal) FROM emp WHERE deptno=20 ;
其中MAX()和MIN()一般是针对数字的应用函数。
2.分组统计
要使用GROUP BY进行分组,此时SQL语法格式如下:
SELECT {DISTINCT} * | 查询列1 别名1, 查询列2 别名2,…
FROM 表名称1 别名1 , 表名称2 别名2 ,…
{WHERE 条件(s)}
{GROUP BY 分组条件 }
{ORDER BY 排序字段 ASC|DESC , 排序字段 ACS | DESC ,…}
1.求出每个部门雇员数量:
SELECT deptno,COUNT(empno) FROM emp GROUP BY deptno ;--按照部门分组的。
2.求出每个部门的平均工资:
SELECT deptno,AVG(sal)FROM emp GROUP BY deptno ;
1.如果程序使用了分组函数,则有两种可以使用的情况:
-
程序中存在了GROUP BY ,并指定了分组条件,这样可以将分组条件一起查询出来。
-
如果不适用分组,则只能单独使用分组函数。
2.在使用分组函数的时候,不能出现分组函数和分组条件之外的字段。
{GROUP BY 分组条件 {HAVING 分组条件}}
{ORDER BY 排序字段ASC|DESC ,排序字段 ACS | DESC ,…}
· 使用HAVING完成以上的操作
SELECT deptno,AVG(sal) FROM emp GROUP BY deptno HAVING AVG(sal)>2000;
5.显示非销售人员工作名称以及从事同一工作雇员的月工资的总和,并且要满足从事同一工作的雇员的月工资合计大于$5000,输出结果按月工资的合计升序排列:
1.组函数在SQL中常用的组函数有以下几个:COUNT():求出全部的记录数 --SELECT COUNT(empno) FROM emp ;MAX() :求出一组中的最大值 --SELECT MAX(sal) FROM emp ;MIN() :求出最小值 --SELECT MIN(sal) FROM emp ;AVG() :求出平均值 --S
日期(exportDate) 数量(amount)
-------------- -----------
14-2月 -08 20
10-3月 -08 2
14-4月 -08 6
14-6月 -08 75
24-10月-09 23
14-11月-09 45
04-8月 -10 5
04-9月 -10 44
04-10月-10
在讲解具体的
分组
统计
操作之前必须要先解决一个问题,什么情况下有可能
分组
?
·例如:全班,男生一组,女生一组,互相拔河;
·例如:全部,戴眼睛一组,不戴眼睛一组,互相比裸眼视力;
·例如:25 岁之前一组,25 岁之后一组,比年轻。
SELECT [DISTINCT] * | 列名称 [别名] , 列名称 [别名] ,... |
统计
函数
-> 4、确定查询列
FROM 数据表 [别名] , 数据表 [别名] ,... ->1、数据来源
[WHERE 条件(s)] -> 2、过滤数据行
文章目录1.
分组
查询概念2.
分组
与聚合
函数
3.多层
分组
4.having
1.
分组
查询概念
什么是
分组
查询:
分组
查询是按照一定的规则进行
分组
,
分组
以后数据会聚合,需要使用聚合
函数
,但是使用聚合
函数
不一定要
分组
,
分组
的关键字是group by。
按照deptno
分组
,说明deptno只有10 ,20,30
SQL> select deptno from emp group by deptno;
DEPTNO
----------
我是tofacebook,今天给大家谈谈java开发的那些事,在我们实际开发过程往往会遇到各种各样的问题,那遇到问题我们要想办法去解决和汇总,以便下次能找的到,如图我有这样的两条数据 我要根据unit_name这个字段中的多个值进行
分组
统计
数量.
wx:pingan-soft
我要显示的格式如下
单位名称 数量
测试单位 1
dd ...
Oracle
和 MySQL
分组
统计
的语法区别在于:
1.
Oracle
使用 GROUP BY 子句进行
分组
统计
,而 MySQL 可以使用 GROUP BY 或者 GROUPING SETS 子句进行
分组
统计
。
2.
Oracle
可以使用 ROLLUP 和 CUBE 子句进行多维
分组
统计
,而 MySQL 只支持 GROUPING SETS 进行多维
分组
统计
。
3.
Oracle
可以使用 GROUPING
函数
进行
分组
统计
的辅助计算,而 MySQL 不支持 GROUPING
函数
。
总的来说,
Oracle
的
分组
统计
功能更加强大和灵活,而 MySQL 的
分组
统计
功能则更加简单和易于使用。