【数据分析】SQL在数据分析中的实践

例题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

结果显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值