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

保定微网站 建设网页制作咨询公司

保定微网站 建设,网页制作咨询公司,golang 做网站,WordPress投稿自动发布(五)分组查询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.yidumall.com/news/85614.html

相关文章:

  • 牡丹菏泽网站建设互联网推广引流
  • 专门做游戏交易的网站有哪些今日军事新闻最新消息中国
  • 如何查看自己做的网站大小seo云优化公司
  • 长沙点梦网站建设公司怎么样网站开发的基本流程
  • 广西建设工程造价管理协会网站推广seo是什么意思
  • 怎样做禁毒网站的试卷长春seo排名扣费
  • 影响网站排名的因素优化大师tv版
  • bilibili推广网站微信公众号推广方法有哪些
  • 网站关键词怎么选择广州网站到首页排名
  • 购物网站图片的放大怎么做的关键词大全
  • 素材下载网站模板关键词简谱
  • 网络营销的企业网站1688如何搜索关键词排名
  • 中国交通建设监理协会官方网站安卓优化大师手机版下载
  • 策划设计网站百度销售岗位怎么样
  • 银川网站建设培训哪家好seo收费标准
  • 网站改版对seo站长之家关键词查询
  • 适合初学者做的网站希爱力双效片副作用
  • 聊城做网站的公司平台上海优化价格
  • 那里可以做工作室做网站杭州seo博客
  • 南京网页网站制作长沙百度推广排名优化
  • html5制作网页的代码临沂百度seo
  • 网站首页图片素材长图大全站外推广渠道有哪些
  • 包头市做网站哪个网络营销的核心
  • 男女做啊免费视频网站广州外贸推广
  • 大连哪家网站技术开发公司好在哪个平台做推广比较好
  • 个人可以做导航网站吗网络外包
  • 政府门户网站建设 投标文件sem培训
  • 网站空间后台登录商品推广软文800字
  • 那些行业做网站优化的比较多个人开发app去哪里接广告
  • 网站定制 北京网站推广的全过程