Mysql学习笔记06——分组查询-阿里云开发者社区

开发者社区> 是安可啊> 正文

Mysql学习笔记06——分组查询

简介: Mysql学习篇
+关注继续查看

细枝末节

1. GROUP BY后的集必须出现在SELECT后

2. 分组函数做条件肯定放在HAVING中

3. 尽量使用WHERE筛选,性能高

4. GROUP BY支持单字段分组,多字段分组,表达式或函数分组

5. GROUP BY使用多字段分组时,无顺序要求

格式

SELECT

    分组,列(要求出现在GROUP BY后面)

FROM

    表名

[WHERE 筛选调节]

GROUP BY

    分组列表

[HAVING 筛选条件]

[ORDER BY 子句]

筛选条件分类

分组前筛选

数据源

原始表

位置

GROUP BY子句前面

关键字

WHERE

分组后筛选

数据源

分组后的结果集

位置

GROUP BY子句后面

关键字

HAVING

示例

查询哪些部门员工个数>2

/* 1. 先查询每个部门员工个数 */

SELECT COUNT(*), dept_id

FROM emps

GROUP BY dept_id

    

/* 2. 根据1中的结果集,对>2条件进行筛选 */

SELECT COUNT(*),dept_id

FROM emps

GROUP BY dept_id

HAVING COUNT(*)>2;

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

/* 1. 先查询每个工种有奖金的员工的最高工资及工种编号 */

SELECT MAX(salary), job_id

FROM emp

WHERE bonus IS NOT NULL

GROUP BY job_id;


/* 2. 根据1中的结果集继续对最高工资>12000条件进行筛选 */

SELECT MAX(salary), job_id

FROM emp

WHERE bons IS NOT NULL

GROUP BY job_id

HAVING MAX(salary)>12000;

查询领导编号>102的每个领导手下的最低工资>5000的领导编号及其最低工资

/* 1. 先查询领导编号>102的的每个领导手下的最低工资及领导编号 */

SELECT MIN(salary), mng_id

FROM emp

WHERE mng_id>102

GROUP BY mng_id;


/* 2. 根据1中的结果集继续对最低工资>5000条件进行筛选 */

SELECT MIN(salary), mng_id

FROM emp

WHERE mng_id>102

GROUP BY mng_id

HAVING MIN(salary)>5000;

按员工姓名的长度分组,查询每组员工个数,筛选员工数>5的组有哪些

/* 1. 先将员工星空按长度分组,查询每组员工个数 */

SELECT COOUNT(*), LENGTH(name)

FROM emp

GROUP BY LENGTH(name);


/* 2. 根据1中的结果集继续对员工数>5条件进行筛选 */

SELECT COUNT(*), LENGTH(name)

FROM emp

GROUP BY LENGTH(name)

HAVING COUNT(*)>5;

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Impala 如何高效查询 OSS 数据 | 学习笔记
快速学习 Impala 如何高效查询 OSS 数据。
24 0
前端工程师的mysql笔记
背景 最近常参与后台php项目,虽说刚毕业时自学过一阵子php和mysql,不过长时间没用也忘差不多了,于是把mysql再温习一遍,前端同学也可以一起学习下! mysql安装以及操作 安装 brew install mysql 启动 $: mysql.
848 0
连接查询之内连接(标签和自然) | 学习笔记
快速学习连接查询之内连接(标签和自然)。
11 0
连接查询之内连接(方言) | 学习笔记
快速学习连接查询之内连接(方言)。
22 0
MongoDB aggregate聚合分组查询
MongoDB aggregate聚合分组查询
12 0
yii下多条件多表组合查询以及自写ajax分页
多条件组合查询主要用到yii的CDbCriteria,这个类很多oem框架都有,非常好用。 前台表单 前台查询表单效果是这样的,多个条件组,每个组里放多个input,name为数组。当任何一个复选框被勾选上,发起ajax请求,当然,最顶层的复选框勾上时判断是否有子项,有的话把所有的子项勾选上。
905 0
SQL 单表多条记录分组查询分页代码
SQL表结构如下图: SQL 分页语句: SELECT TOP 5 *,(select count(*) inum from (select distinct AreaID...
575 0
Presto 如何高效查询 OSS 数据 | 学习笔记
快速学习 Presto 如何高效查询 OSS 数据。
18 0
hive 数据库,yarn 集群测试,SQL 分组取 topN1 | 学习笔记
快速学习 hive 数据库,yarn 集群测试,SQL 分组取 topN1
13 0
+关注
是安可啊
陷阵之志,有死无生。
61
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载