首页 > 其他分享 >分组统计(group by having)

分组统计(group by having)

时间:2023-02-13 22:56:53浏览次数:42  
标签:1991 group sal DEFAULT 分组 20 deptno NULL having

CREATE TABLE dept(
    deptno MEDIUMINT NOT NULL DEFAULT '0',
    dname VARCHAR(20) NOT NULL DEFAULT '',
    loc VARCHAR(13) NOT NULL DEFAULT ''
);
INSERT INTO dept VALUES(10,'ACCOUNTING','NEW YORK'),
    (20,'RESEARCH','DALLAS'),
    (30,'SALES','CHICAGO'),
    (40,'OPERATIONS','BOSHTON');  
SELECT * FROM dept;

CREATE TABLE emp(
	empno MEDIUMINT  UNSIGNED NOT NULL DEFAULT '0',
	ename VARCHAR(20) NOT NULL DEFAULT '',
	job VARCHAR(9) NOT NULL DEFAULT '',
	mgr MEDIUMINT UNSIGNED,
	hiredate DATE NOT NULL, 
	sal DECIMAL(7,2) NOT NULL,
	comm DECIMAL(7,2),
	deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT '0'
);

INSERT INTO emp VALUES(7369,'SMITH','CLERK',7902,'1990-12-17',800.00,NULL,20),
    (7499,'ALLEN','SALESMAN',7698,'1991-2-20',1600.00,300.00,30),
    (7521,'WARD','SALESMAN',7968,'1991-2-22',1250.00,500.00,30),
    (7566,'JONES','MANAGER',7839,'1991-4-2',2975.00,NULL,20),
    (7654,'MARTIN','SALESMAN',7968,'1991-9-28',1250.00,1400.00,30),
    (7698,'BLAKE','MANAGER',7839,'1991-5-1',2850.00,NULL,30),
    (7782,'CLARK','MANAGER',7839,'1991-6-9',2450.00,NULL,10),
    (7788,'SCOTT','ANALYST',7566,'1991-4-19',3000.00,NULL,20),
    (7839,'KING','PRESIDENT',NULL,'1991-11-17',5000.00,NULL,10),
    (7844,'TURNER','SALESMAN',7698,'1991-9-8',1500.00,NULL,30),
    (7900,'JAMES','CLERK',7698,'1991-12-3',950.00,NULL,30),
    (7902,'FORD','ANALYST',7566,'1991-12-3',3000.00,NULL,20),
    (7934,'MILLER','CLERK',7782,'1991-1-23',1300.00,NULL,10);
    
SELECT * FROM emp;



CREATE TABLE salgrade(
    grade MEDIUMINT UNSIGNED NOT NULL DEFAULT '0',
    losal DECIMAL(17,2) NOT NULL,
    hisal DECIMAL(17,2) NOT NULL
);
INSERT INTO salgrade VALUES(1,700,1200),
    (2,1201,1400),
    (3,1401,2000),
    (4,2001,3000),
    (5,3001,9999);
    
    
分组查询每个部门的最低和最高工资
SELECT AVG(sal), MAX(sal), deptno
FROM emp GROUP BY deptno
每个部门的每种岗位的平均工资和最低工资
SELECT AVG(sal), MIN(sal), deptno, job
FROM emp GROUP BY deptno, job
显示平均工资小于2000的部门号和它的平均工资
-- 使用having语句进行过滤(group by与having搭配)
SELECT deptno, AVG(sal)
	FROM emp  GROUP BY deptno
		HAVING AVG(sal) < '2000'
		
-- 还可以使用别名,加个as后对更名后的having就可以了,并且这要效率更高,因为这样只需要计算一次avg
SELECT deptno AS avg_sal, AVG(sal)
	FROM emp  GROUP BY deptno
		HAVING avg_sal < '2000'

标签:1991,group,sal,DEFAULT,分组,20,deptno,NULL,having
From: https://www.cnblogs.com/pureayu/p/17118174.html

相关文章

  • spark中的聚合操作和分组操作
    聚合操作注意:任何的聚合操作都有默认的分组,聚合是在分组的基础上进行的。比如,对整体进行求和,那么分组就是整体。所以,在做聚合操作之前,一定要明确是在哪个分组上进行聚合操......
  • 分组柱状图
    <!--分组柱状图--><template><divclass="chartBox"><!--echart图标--><divid="histogram"ref="histogram"></div></div></template><script>//引入基本模......
  • Tonto团队黑客第二次试图攻击网络安全公司Group-IB的行动失败了
    被称为TontoTeam的高级持续性威胁(APT)行为者在2022年6月对网络安全公司Group-IB进行了一次不成功的攻击。这家总部位于新加坡的公司表示,它检测并阻止了来自该集团针对其员工......
  • Java Stream分组groupBy后,取某个字段值为字符串或者list
    某个字段值为字符串List<User>userList=newArrayList();Map<String,String>collect=userList.stream().collect(Collectors.groupingBy(User:......
  • Tonto团队黑客第二次试图攻击网络安全公司Group-IB的行动失败了
    被称为TontoTeam的高级持续性威胁(APT)行为者在2022年6月对网络安全公司Group-IB进行了一次不成功的攻击。这家总部位于新加坡的公司表示,它检测并阻止了来自该集团针对......
  • mysql按照日期字段分组统计表数据
    问题描述测试表如下:上面的日期是精确到日的,我现在要按照年月来将上表的数据分组统计,并求出number的平均值。例:查出wellid='001’每月的number平均值sql语句关键词:日期字......
  • mysql多字段分组
    文章目录​​mysql多字段分组​​​​groupby语法​​​​多字段分组​​​​GROUPBY与ORDERBY一起使用(分组排序)​​​​使用having过滤分组​​mysql多字段分组group......
  • 低成本运维软件WGCLOUD - 主机分组管理介绍使用
    有时候我们主机比较多,不同的项目想进行分组管理WGCLOUD监测平台是支持分组的,不过默认没有启用该功能,只要修改个配置项就可以使用主机分组了在server/config/application.yml......
  • 分组背包问题
    //没有状态压缩#include<bits/stdc++.h>usingnamespacestd;constintN=210;intn,m;intv[N][N],w[N][N],s[N];intf[N][N];intmain(){cin>>n>>m;......
  • MySQL按日期分组统计(按天统计,按月统计)
    以下为您演示MySQL常用的日期分组统计方法:按月统计(一)SELECTdate_format(r.pay_time,'%Y-%m')pay_time,r.pay_time,SUM(r.actual_payment)ASactu......