当前位置: 首页 > news >正文

北京住房和城乡建设委员会官方网站武汉百度开户代理

北京住房和城乡建设委员会官方网站,武汉百度开户代理,网站后台密码重置,什么是网站建设技术(五)分组查询1. 介绍2. 语法3. 简单分组函数2. 添加筛选条件3. 添加复杂的筛选条件4. 分组查询特点5. 按表达式或函数分组6. 按多个字段分组7. 分组查询添加排序1. 介绍 引入:查询每个部门的平均工资 -- 以前写法:求的是总平均工…

1. 介绍

引入:查询每个部门的平均工资

-- 以前写法:求的是总平均工资。
SELECT AVG(salary) FROM employees;
-- 正确写法
SELECT AVG(salary), department_id
FROM employees
GROUP BY department_id;

2. 语法

SELECT 分组函数,--列要求出现在 group by 的后面
FROM[WHERE 筛选条件]
[GROUP BY 分组的列表]
[ORDER BY|分组函数];

注意:
查询列表必须特殊,要求是分组函数和 group by 后出现的字段。

一般出现 “每个”、“各个”、“每一个”、“所有” 等词语,都是要进行分组查询,并且这些词的后紧接的就是 ORDER BY 后的内容。

3. 简单分组函数

案例一:查询每个工种的最高工资

SELECT MAX(salary), job_id
FROM employees
GROUP BY job_id;

案例二:查询每个位置上的部门个数

SELECT COUNT(*),location_id
FROM departments
GROUP BY location_id;

2. 添加筛选条件

案例1:普询邮箱中包含a字符的,每个部门的平均工资

SELECT AVG(salary), department_id
FROM employees
WHERE email like '%a%'
GROUP BY department_id;

案例2:查询有奖金的每个领导手下员工的最高工资

SELECT MAX(salary), manager_id
FROM employees
WHERE commission_pct IS NOT NULL
GROUP BY manager_id;

3. 添加复杂的筛选条件

添加分组后的筛选:HAVING

案例1: 查询哪个部门的员工个数>2

SELECT COUNT(*), department_id
FROM employees
GROUP BY department_id
HAVING COUNT(*)>2;

案例2:查询每个工种有奖金的员工的最高工资>12000的工种编号和最高工资

-- 1. 查询每个工种有奖金的员工的最高工资
SELECT MAX(salary),job_id
FROM employees
WHERE commission_pct IS NOT NULL
GROUP BY job_id;
-- 2. 根据1结果继续筛选,最高工资>12000
SELECT MAX(salary),job_id
FROM employees
WHERE commission_pct IS NOT NULL
GROUP BY job_id
HAVING MAX(salary)>12000;

案例3:查询领导编号>102的每个领导手下的最低工资>5000的领导编号

 SELECT MIN(salary), manager_idFROM employeesWHERE manager_id>102GROUP BY manager_idHAVING MIN(salary)>5000;

4. 分组查询特点

分组查询中的筛选条件分为两类:

分类数据源关键字位置
分组前筛选原始表WHEREGROUP BY 子句的前面
分组后筛选分组后的结果集HAVINGGROUP BY 子句的后面
  1. 分组函数做条件肯定是放在 having 子句中
  2. 能用分组前筛选的优先使用分组前筛选(性能好)
  3. GROUP BY 子句支持单个字段分组,多个字段分组(多个字段之间用逗号隔开,没有顺序要求)
  4. 排序查询放在最后

5. 按表达式或函数分组

案例: 按员工姓名的长度分组,查询每一组的员工个数,筛选员工个数>5

-- a. 查询每个长度的员工个数
SELECT COUNT(*), LENGTH(last_name) AS len_name
FROM employees
GROUP BY LENGTH(last_name)
-- b. 添加筛选条件
SELECT COUNT(*) c, LENGTH(last_name) AS len_name
FROM employees
GROUP BY len_name
HAVING c>5;

6. 按多个字段分组

案例: 查询每个部门每个工种的员工的平均工资

SELECT AVG(salary), department_id, job_id
FROM employees
GROUP BY department_id, job_id;

7. 分组查询添加排序

案例: 查询每个部门每个工种的员工的平均工资,并且按平均工资的高低排列
排序查询放在最后

SELECT AVG(salary) a, department_id, job_id
FROM employees
WHERE department_id IS NOT NULL
GROUP BY department_id, job_id
HAVING a>10000
ORDER BY a DESC;
http://www.tj-hxxt.cn/news/42356.html

相关文章:

  • 网站建设小江网页设计网站及推广
  • 怎样自己制作效果图怎么优化网站
  • 营销网站的建设流程哪个平台可以免费打广告
  • 专业网站开发方案最近新闻热点大事件
  • 中山网站推广词百度一下首页百度一下
  • 建网站需要什么编程技术网站开发报价方案
  • 帮人家做网站能赚多少钱360提交入口网址
  • 静态网站入侵教程百度快速排名用什
  • 建设网站犀牛云关键词全网搜索指数
  • 大型网站开发经典框架痘痘怎么去除有效果
  • 怎样自己做免费的网站备案查询
  • asp网站后台编辑器济南新站seo外包
  • 网页制作代码步骤长沙网站seo排名
  • 河北公司网站建设seo基础视频教程
  • wordpress软件网站模板下载搭建一个网站需要什么
  • 石碣企业网站建设公司手机网站建设公司
  • 长春网站排名沈阳网站制作优化推广
  • 中文软件开发平台系统优化app最新版
  • 外贸批发网站建设济南做seo的公司排名
  • 乐清新闻最新消息视频seo赚钱培训课程
  • 公司做的网站费用计入什么科目优化搜索引擎
  • 全球网站制作搭建自己的网站
  • 怎么在雅虎做网站收入百度指数资讯指数
  • 网站做电商资质石家庄网络营销网站推广
  • 提供网站建设找哪家公司好河北搜索引擎优化
  • 企业网站宣传册应该哪个部门做seo店铺描述
  • 珠海建设网站公司简介百度推广怎么做免费
  • 关于一学一做的短视频网站好苏州网站开发公司
  • 动态网站首页模版seo 的原理和作用
  • 微网站是什么意思优化关键词排名工具