首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL笔记二(GROUP BY)

我修的过程其实一点都不了解GROUP BY,因为百度搜索sql去重复的时候推荐了这个我就用了。然后想起来自己写过《SQL笔记一》的文章,而且文章过去挺久的了,所以我就想是时候再水一篇文章了。...GROUP BY就是分组函数 比如 现有 性别 男 3 人 体重 50KG/60KG/70 性别 女 2 人 体重 40KG/30KG 这时 你用到GROUP BY进行分组 select sum(...体重) ,性别 from 表明 group by 性别 ; 则能得到结果 男 180 女 70 等于说 是按照你所GROUP BY的东西进行分组 ,然后再对分组内的东西进行操作 就是这么个简单的例子,...姓名 班级 性别 分数 张1 1班 男 60 张2 1班 女 70 张3 1班 男 80 张4 1班 女 80 张5 2班 男 70 张6 2班 女 60 张7 2班 男 80 select 班级,性别...,AVG(分数) as 平均分 from test group 班级,性别 得出的结果是 班级 性别 平均分 1班 男 70 1班 女 75 2班 男 75 2班 女 60 这样就好理解多了。

33420
您找到你想要的搜索结果了吗?
是的
没有找到

SQLGROUP BY用法示例

概述 GROUP BY我们可以先从字面上来理解,GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类似Excel里面的透视。...GROUP BY必须得配合聚合函数来用,分组之后你可以计数(COUNT),求和(SUM),求平均数(AVG)等。...BY column_name; 例子 接下来我们将通过例子进行理解: 我们现在有一张dept_emp共四个字段,分别是emp_no(员工编号),dept_no(部门编号),from_date(起始时间...image.png HAVING 当然提到GROUP BY 我们就不得不提到HAVING,HAVING相当于条件筛选,但它与WHERE筛选不同,HAVING是对于GROUP BY对象进行筛选。...image.png 以上便是GROUP BY的一些基本使用方法介绍,如有其他问题,欢迎留言~ ---- peace~

8.2K20

SQL学习之分组数据Group by

2、下面是使用Group By子句需要知道的一些重要的规定 (1)Group By子句可以包含任意数目的列,因而可以对分组进行嵌套,进行更细致的分组。...(2)Group By子句中列出的每一列都必须是检索列(或者有效的表达式,注意不能是聚集函数)。...如果在SELECT中使用了检索列(或者表达式),则在Group By子句中使用相同的表达式,不能使用别名。 (3)大多数SQL不允许Group By带有可变长度的数据类型(如文本,text类型)。...3、Group By All+多个字段,Group By+多个字段 在SQL Server 中Group By All+多个字段和Group By+多个字段在效果是一样的,都是通过多个字段来分组!...ok,解决需求,通过上面的结果图,我们可以看出,三个老师所教的课程基本都只教一个班,除了t003老师的sql SERVER 2005教了两个班,当然我们实际的业务中,并不会这样建,我这边指示为了演示Group

1.2K50

MySQL 内部临时group by工作原理)

2); 通过上图可以看出,在我们进行union的时候使用了临时,上述语句执行过程如下: 创建一个内存临时,临时只有一个整型字段f,并且f是主键字段 执行第一个子查询,将1000这个值插入临时中...依次累加: 当碰到第一个1时,可以得出累积了X个0,结果集里面的第一行就是(0, X) 当碰到第二个2时,可以得出累积了Y个1,结果集里面的第二行就是(1, Y) InnoDB的索引就可以满足上述有序条件...by z; group by优化直接排序 如果group by的数据量比较大,先插入内存临时一部分数据后,发现内存临时放不下了需要再转成磁盘临时,这部分过程也是耗时的,那么如何让group...在group by语句中加入SQL_BIG_RESULT提示,告诉优化器使用磁盘临时。但是MySQL优化器出于对存储效率的考虑,不会使用B+数存储,而是直接使用数组。...explain select SQL_BIG_RESULT id%100 as m, count(*) as c from t1 group by m; 上述语句的执行流程是: 初始化sort_buffer

3.2K40

临时和文件排序实现 group by

本文是 group by 实现过程分析的第 2 篇文章,第 1 篇是 MySQL 怎么用索引实现 group by? <- 点击阅读 了解 MySQL 内部临时中包含什么字段?为哪些字段建立索引?...<- 点击阅读 接下来,我们一起来看看 ③ ④ 两种方式(临时 + 文件排序、文件排序)是怎么实现 group by 的。 2....准备工作 本文示例 SQL 使用的结构如下: CREATE TABLE `t_group_by` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT,...接下来,我们用一个具体例子来分析使用临时 + 文件排序实现 group by 的过程,示例 SQL 如下: select e1, count(i1) as sum_i1 from t_group_by...总结 第 3 小节,以一个具体 SQL 为例,分析了 group by 的具体执行过程。 临时中会写入分组数据,并且会为 group by 字段建立 HASH 索引。

1K30

Mysql group by实现方式(一) - 临时

当MySQL Query Optimizer无法找到可以利用的合适索引时,就不得不先读取需要的数据,然后通过临时来完成GROUP BY操作 例如 EXPLAIN SELECT max(gmt_create...) FROM group_message WHERE group_id > 1 and group_id < 10 GROUP BY user_id \G ********** 1. row *****...32 Extra: Using where; Using index; Using temporary; Using filesort 执行计划说明MySQL通过索引找到了所需的数据,然后创建了临时,...所以MySQL无法根据索引的顺序来帮助GROUP BY的实现,只能先通过索引范围扫描得到需要的数据,将数据存入临时,然后再进行排序和分组操作来完成GROUP BY 针对这种情况的优化,必须要有足够的sort_buffer_size...供排序时使用,而且尽量不要进行大结果集的GROUP BY操作,因为如果超出系统设置的临时大小就会出现将临时数据复制(copy)到磁盘上面再进行操作的情况,这时的排序分组操作性能将成数量级的下降

1.9K60

SQL笔记(2)——MySQL的操作与索引

SQL中,修改中某一列的数据类型是一个重要的操作,因为数据类型决定了该列可以存储的数据种类和范围。...table score modify column remarks not null default '无备注'; ERROR 1064 (42000): You have an error in your SQL...,old_column_name是需要被重命名的列名,new_column_name是新的列名,关键字是RENAME; 更改列的位置 这个场景很简单,就是改变备注列的位置,但是由于SQL语法的原因,...结构的key代表什么 PRI:表示该列是主键,主键是一种特殊的索引,用于唯一标识中的每一行数据。每个最多只能有一个主键,主键限制表中的数据不能重复,并且不能为NULL。...fk_score_student | FOREIGN KEY | +------------------+-----------------+ 3 rows in set (0.00 sec) 上述SQL

1.6K20
领券