Oracle——group by练习
表:empsales
id | empno | deptno | salemoney | saletime |
---|---|---|---|---|
1 | 001 | 001 | 10 | 2019-8-10 |
2 | 001 | 001 | 20 | 2019-8-10 |
3 | 002 | 001 | 4 | 2019-8-20 |
4 | 003 | 002 | 10 | 2019-8-27 |
5 | 002 | 001 | 3 | 2019-8-28 |
6 | 004 | 002 | 50 | 2019-8-31 |
7 | 001 | 001 | 100 | 2019-9-1 |
1、创建表empsales,为id添加主键约束,saletime数据类型为date
2、计算8月份有多少销售记录
3、计算每个员工在8月份的销售总额
4、计算8月份每个部门销售金额在10以上的销售记录个数
5、计算在8月份的销售总额大于10的员工
答案:
1、创建表empsales,为id添加主键约束,saletime数据类型为date
create table empSales (id int primary key,
empNo varchar2(20),
deptNo varchar2(20),
saleMoney int,
saleTime date);
运行结果:
快速建表
INSERT INTO "SCOTT"."EMPSALES" VALUES ('1', '001', '001', '10', TO_DATE('2019-08-10 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO "SCOTT"."EMPSALES" VALUES ('2', '001', '001', '20', TO_DATE('2019-08-10 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO "SCOTT"."EMPSALES" VALUES ('3', '002', '001', '4', TO_DATE('2019-08-20 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO "SCOTT"."EMPSALES" VALUES ('4', '003', '002', '10', TO_DATE('2019-08-27 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO "SCOTT"."EMPSALES" VALUES ('5', '002', '001', '3', TO_DATE('2019-08-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO "SCOTT"."EMPSALES" VALUES ('6', '004', '002', '50', TO_DATE('2019-08-31 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO "SCOTT"."EMPSALES" VALUES ('7', '001', '001', '100', TO_DATE('2019-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
2、计算8月份有多少销售记录
select count(id) from empsales where saletime between '01-8月-2019' and '31-8月-2019';
运行结果:
3、计算每个员工在8月份的销售总额
select empno,sum(salemoney) from empsales where saletime between '01-8月-2019' and '31-8月-2019' group by empno;
运行结果:
4、计算8月份每个部门销售金额在10以上的销售记录个数
select deptno,count(*) from empsales where saletime between '01-8月-2019' and '31-8月-2019' and salemoney > 10 group by deptno;
运行结果:
5、计算在8月份的销售总额大于10的员工
select empno,sum(salemoney) from empsales where saletime between '01-8月-2019' and '31-8月-2019' group by empno having sum(salemoney) > 10;
运行结果: