【SQL】在查询中进行统计I (Pt. 1+2)

在查询中进行统计I (Pt. 1)

练习题:

1、找出就职年份最高的雇员(列出雇员名字+年份)

select name, MAX(years_employed) FROM Employees

#"MAX"等统计函数,可以直接在第一行代码启用#

2、按角色(Role)统计一下每个角色的平均就职年份

SELECT role,avg(years_employed) FROM employees
group by role

3、按办公室名字总计一下就职年份总和

SELECT building, sum(years_employed) FROM employees
group by building

#同时输出 “building”/“sum(years_employed)”,这样看起来更易懂。#

4、每栋办公室按人数排名,不要统计无办公室的雇员

SELECT building,count(building)FROM employees
where building is not null #先排除NULL#
group by building

5、就职1,3,5,7年的人分别占总人数的百分比率是多少(给出年份和比率"50%" 记为 50)

SELECT  years_employed,count(*)*100/(SELECT count(*) FROM Employees) AS  rating
FROM employees
WHERE years_employed in (1, 3, 5, 7)
group by years_employed

#总人数“(SELECT count(*) FROM Employees)”#
#a in (1, 3, 5, 7)#

在查询中进行统计I (Pt. 2)

1、统计一下Artist角色的雇员数量

SELECT role,count() FROM employees
where role = "Artist"

2、按角色统计一下每个角色的雇员数量

SELECT role,count(*) FROM employees
group by role

3、算出Engineer角色的就职年份总计

SELECT role, sum(years_employed) FROM employees
where role like "engineer"
group by role

4、按角色分组算出每个角色按有办公室和没办公室的统计人数(列出角色,数量,有无办公室,注意一个角色如果部分有办公室,部分没有需分开统计)

SELECT role,count(role),building is null FROM employees
group by role

#这个比较牛逼啊,得认真学习下#

5、按角色和就职年份统计人数,年份按0-3,3-6,6-9这种阶梯分组,最后按角色+阶梯分组排序

select role,years_employed,years_employed/3 as year_3,count(role)from employees
group by role,year_3 #可以以两个column分组#

#这个比较牛逼,得认真学习下#

你可能感兴趣的:(【SQL】在查询中进行统计I (Pt. 1+2))