3:分组查询

# 分组查询
/*
分组数据 group by,该语句可以iang表中数据分成若干组
用法如下:
SELECT COLUMN,GROUP BY(COLUMN)
FROM TABLE
[WHERE CONDITION]
[GROUP BY GROUP BY expression]
[ORDER BY column]
*/
#引入,查询每个部门的平均工资。

#1:每个工种的最高工资
SELECT MAX(salary),job_id
FROM employees
GROUP BY job_id;

#2,每个位置上的部门个数
SELECT COUNT(*),location_id
FROM departments
GROUP BY location_id;

# 添加筛选条件
#3,查询邮箱包含a字符的,每个部门的平均工资
SELECT AVG(salary),department_id
FROM employees
WHERE email like '%a%'
GROUP BY department_id; 

#4,有奖金的每个领导手下员工的最高工资
SELECT MAX(salary),manager_id
FROM employees
WHERE commission_pct is not NULL
GROUP BY manager_id;

#添加复杂的筛选条件
#1:查询哪个部门的员工个数大于二?分组后的查询
#WHERE限制的条件是来自table的,
#而这种限制条件来之分组查找后的,应该用having。
SELECT COUNT(*),department_id
FROM employees
GROUP BY department_id
HAVING COUNT(*)>2;

#2,查询每个工种有奖金的员工且最高工资大于12000的工种编号和最高工资
SELECT MAX(salary),job_id
FROM employees
where commission_pct is not NULL
GROUP BY job_id
HAVING MAX(salary)>12000;

猜你喜欢

转载自www.cnblogs.com/dazhu123/p/12575696.html