select
avg
(empno) avgsal from emp
group by
deptno;
注意:d.dname该字段并没有对它进行group by,所以会报错,要想展示出来就得更细的分组
范例:查询出每个部门从事相同工作的人
分析:首先分出部门,再从部门上分出相同工作的人,所以得分两个组
范例:查询出部门函数大于五人的部门
分析:需要给count(ename)加条件,此时再本查询中不能使用where,可以使用having 在group by后面作用在分组函数上
范例:平均工资大于两千的部门
select avg(sal) deptno from emp group by deptno having avg(sal) > 2000
范例:显示非销售人员工作名称以及从事同一工作的员工的月工资的总和,并且要满足从事同一工作月工资总和大于5000,结果按月工资总和的升序排列。
在分组统计的时候如果处理分组函数以外,结果列必须是group by后面分组的列(后面的列前面才能有,后面没有的前面决不能有)
1.统计记录数count()select count(字段名) from 表名;2.最小值查询min()范例:查询工资最低的员工select min(sal) from emp;3.最大值查询max()范例:查询工资最高的员工select max(sal) from emp;4.平均值函数求平均工资:select avg(sal) avgsal from e...
前几天要做一个
统计
查询
的功能,因为涉及多张表,多种
条件
的
统计
分析。一开始便想到了UNION和IF语句,然后写了1000多行代码,就为了查30条数据觉得不应该。
然后就开始百度,多种
条件
下的
统计
。然后有一种语法让我眼前一亮,case when then else end
当满足CASE设定的
条件
时,就可以执行then语句。由于我要做的
分组
查询
统计
,是要罗列每一种情况,而且根据输入的“管理员编号”不同返回不同结果,结果记录的条数和每一种情况是可知的,这个语法完全可用
核心代码如下:
SELECT SUBSTR(A.业务,1,2) 行政区域,SUBSTR(A.业务,3,LENGTH(A.业务
1.作用 分解字符串
2.声明 char *strtok(char *str, const char *delim)
3.参数 1.str – 要被分解成一组小字符串的字符串。2.delim – 包含分隔符的 C 字符串。
4.返回值该
函数
返回被分解的第一个子字符串,如果没有可检索的字符串,则返回一个空指针。
#include <string.h>
#include <stdio.h>
int main
在讲解具体的
分组
统计
操作之前必须要先解决一个问题,什么情况下有可能
分组
?
·例如:全班,男生一组,女生一组,互相拔河;
·例如:全部,戴眼睛一组,不戴眼睛一组,互相比裸眼视力;
·例如:25 岁之前一组,25 岁之后一组,比年轻。
SELECT [DISTINCT] * | 列名称 [别名] , 列名称 [别名] ,... |
统计
函数
-> 4、确定
查询
列
FROM 数据表 [别名] , 数据表 [别名] ,... ->1、数据来源
[WHERE
条件
(s)] -> 2、过滤数据行