mysql加强(3)~分组(统计)查询
一、分组(统计) 查询
1、语法 :
select [distinct] *| 分组字段1[别名] [,分组字段2[别名],...] | 统计函数
from 表名 [别名]
[where 条件(s)]
[group by 分组字段1[,分组字段2]]
[having 分组后的过滤条件(可以使用统计函数)]
[order by 排序字段 asc|desc[,排序字段 asc|desc]];
2、注意分组的细节:
❀ 分组查询:select 后的字段必须是分组字段(跟在group by 后面的字段) 或 统计函数字段
#错误使用分组(统计)查询【查询的字段不是分组字段】
select empno, count(empno) from emp;
❀ 不能在where 子句中限制组,即不能在where子句中使用组函数(统计函数)。
#错误使用分组(统计)查询【组函数出现在where的子句中】
select avg(sal) from emp where avg(sal) > 2000 group by deptno;
❀ 对分组的结果进行限制(过滤)---使用having对组进行筛选
#查询各个部门的平均工资
select deptno, avg(sal) from emp group by deptno;
#查询平均工资高于2000的部门和其平均工资 ('平均工资高于2000'是分组之后的筛选条件)
select avg(sal) from emp group by deptno having avg(sal) > 2000;
❀ 并列分组:
单列分组:水果分为苹果、香蕉、葡萄。一共分为3个组。
什么是并列分组:水果分为苹果、香蕉、葡萄;然后苹果又可以分为红富士、丑苹果;香蕉又分为芭蕉、小米蕉;葡萄又分为红提、青提。一共分成6个组。
#查看各个部门和岗位的平均工资
select deptno, job, avg(sal) from emp group by deptno, job;

■ sql语句的执行顺序:从哪张表过滤掉不合法数据,然后分组(对分组结果再过滤一下)显示出来,进行排序、分页。
from where group by having select order by limit
■ where 和 having 执行的先后:
① where 是在分组之前进行筛选,先过滤掉不合法数据, 在 where 之中不能使用统计函数(组函数)。
② having 是在分组之后进行筛选,对组的结果进行过滤。
mysql加强(3)~分组(统计)查询的更多相关文章
- SQL Fundamentals: 分组统计查询(FROM-WHERE-GROUPBY-HAVING-SELECT-ORDER BY)
SQL Fundamentals || Oracle SQL语言 统计函数 单字段分组统计(GROUP BY) 多字段分组统计 HAVING子句 控制操作的显示列:基本的SELECT语句 控制行:限定 ...
- Oracle数据库从入门到精通-分组统计查询
视频课程:李兴华 Oracle从入门到精通 视频课程学习者:阳光罗诺 视频来源:51CTO学院 整体内容: 统计函数的使用 分组统计查询的实现 对分组的数据过滤 统计函数 在之前我们就学习过一个COU ...
- 010.简单查询、分组统计查询、多表连接查询(sql实例)
-------------------------------------day3------------ --添加多行数据:------INSERT [INTO] 表名 [(列的列表)] --SEL ...
- sql 分组统计查询并横纵坐标转换
关于sql 分组统计查询,我们在做报表的时候经常需要用到;今天就在这里整理下; 先附上一段sql代码: if object_id(N'#mytb',N'U') is not null drop tab ...
- mysql按日期分组统计数据
最近在做一个招聘网时,需要显示一个月内企业招聘信息的发布数量,按日期分组统计,刚开始是直接从源数据库表里面进行group by,但这样子就出现日期不连续的问题了,我想要的效果是,若当天没有数据,则显示 ...
- MySQL 分组统计查询 表连接(3)
1 查询底薪超过公司平均底薪的员工信息? select e.empno,e.ename,e.salfrom t_emp as e join (select avg(sal) as avg from t ...
- 记录一个mysql按日期分组统计的查询
http://blog.csdn.net/llwan/article/details/7738991
- rails 各种分组统计查询
SpecialGroup.group(:special_type).countselect special_type,count(*) from special_groups group by spe ...
- Mysql按时间段分组查询
Mysql按时间段分组查询来统计会员的个数,mysql个数 Mysql按时间段分组查询来统计会员的个数,mysql个数 1.使用case when方法(不建议使用)- 代码如下 复制代码SELECT ...
随机推荐
- 年底了是时候学新技术了「GitHub 热点速览 v.21.52」
作者:HelloGitHub-小鱼干 年底了,又有新技术冒出来需要你来 Pick 了,第一个先要被 Pick 的是即将到来的元旦英文版:Happy New Year,再来的话就是这周非常火的新一代爬虫 ...
- 【LeetCode】835. Image Overlap 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【LeetCode】142. Linked List Cycle II 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 双指针 set 日期 题目地址:https://le ...
- Java 将Excel转为OFD
OFD是一种开放版式文档(Open Fixed-layout Document )的英文缩写,是我国国家版式文档格式标准.本文,通过Java后端程序代码展示如何将Excel转为OFD格式.方法步骤如下 ...
- Geometric GAN
目录 概 主要内容 McGAN 结合SVM 训练 训练 理论分析 证明 Jae Hyun Lim, Jong Chul Ye, Geometric GAN. 概 很有趣, GAN的训练过程可以分成 寻 ...
- PL2586旺玖|USB 2.0HUB 工业级芯片|PROLIFIC PL2586
工业级 USB 2.0 HUB 高速4端口集线器控制器 PL2586 1.PL2586说明 PL2586是USB 2.0高速4端口集线器控制器的高性能解决方案,完全符合通用串行总线规范2.0.控 ...
- Java的generator工具类,数据库生成实体类和映射文件
首先需要几个jar包: freemarker-2.3.23.jar log4j-1.2.16.jar mybatis-3.2.3.jar mybatis-generator-core-1.3.2.ja ...
- 【MySQL作业】多字段分组和 having 子句——美和易思分组查询应用习题
点击打开所使用到的数据库>>> 1.按照商品类型和销售地区分组统计商品数量和平均单价,并按平均单价升序显示. -- 按照商品类型和销售地区分组统计商品数量和平均单价,并按平均单价升序 ...
- EntityFrameworkCore数据迁移(一)
.net core出来已经有很长一段时间了,而EentityFrameworkCore(后面简称EFCore)是.net framework的EntityFramework在.net core中的实现 ...
- .NET 云原生架构师训练营(组合模式)--学习笔记
目录 引入 组合模式 源码 引入 在上一篇执行 _connectionDelegate 之后,HttpConnectionMiddleware 处理请求 return connection.Proce ...