例题1:
-- 1、请用sql查出抽取部门、平均工资,要求部门的字符串顺序排列不能含有“human resource” 部门
-- 表 employee 结构如下
-- employee_id 员工id
-- employee_name 员工名
-- depart_id 部门id
-- depart_name 部门名
-- wage 工资
建表
drop table if exists employee;
create table employee (
employee_id int
,employee_name varchar(10)
,depart_id int
,depart_name varchar(20)
,wage int
);
插入数据
insert into employee (employee_id,employee_name,depart_id,depart_name,wage) values (1,'张三',1,'shuju',100)
,(1,'张四',1,'shuju',100)
,(1,'张五',1,'human resource',100)
,(1,'张六',1,'shuju2',100)
,(1,'张七',1,'human resource',100)
;
-- (employee_id,employee_name,depart_id,depart_name,wage)可不要
实现代码
Select depart_name,avg(wage) as avg_wage
from employee
where depart_name not like '%human resource%'
group by 1
order by 1
结果显示
例题2:
-- 2、比赛结果result表内容如下
-- a表
-- date win
-- 2017/7/12 胜
-- 2017/7/12 负
-- 2017/7/12 胜
-- 2017/7/15 负
-- 2017/7/12 负
-- 2017/7/15 胜
-- b表
-- 比赛日期 胜 负
-- 2017/7/12 2 1
-- 2017/7/15 1 2
-- 用sql查出a表到b表
建表
create table result (
date varchar(20)
,win varchar(10)
);
插入数据
insert into result (date,win) values ('2017/7/12','胜')
,('2017/7/12','胜')
,('2017/7/12','负')
,('2017/7/15','胜')
,('2017/7/15','负')
,('2017/7/15','负')
;
实现代码
Select date as 比赛日期
-- ,sum(case when win='胜' then 1 else 0 end) as 胜
-- , sum(case when win='负' then 1 else 0 end) as 负
,count(case when win='胜' then win end) as 胜
,count(case when win='负' then win end) as 负
From result
Group by date
Order by date