group by的用法
1. group by 的解释:
对哪个字段 ( 哪几个字段)进行分组。
2. group by 的用法:
select 字段 from 表 where 条件 group by 字段1(,字段2,字段3)
select 字段 from 表 group by 字段1(,字段2,字段3)having 过滤条件
ps:where 是先过滤,再分组;having 是分组后再过滤
3. group by 的案例:
- 创建student表:
create table student(
id, int
name,varchar(20)
grade,varchar(20)
salary,varchar(20)
);
- 向student表中插入数据:
insert into student values(1,'zhang','A',1500)
insert into student values(2,'wang','B',3000)
insert into student values(3,'liu','A',1500)
insert into student values(4,'sun','A',3500)
insert into student values(5,'wu','C',2000)
insert into student values(6,'xu','D',2500)
- student 表的结果:
id | name | grade | salary |
1 | zhang | A | 1500 |
2 | wang | B | 3000 |
1 | zhang | A | 1500 |
4 | liu | A | 3500 |
5 | wu | C | 2000 |
6 | xu | D | 2500 |
- 单个字段分组
- SELECT grade FROM student
grade |
A |
B |
A |
A |
C |
D |
- SELECT grade FROM student GROUP BY grade
grade |
A |
B |
C |
D |
- 多个字段分组
- SELECT name,SUM(salary) FROM student GROUP BY name,grade
- 按照名字和成绩划分,查看相同名字下的工资总和sum()是聚合函数
- PS: 这里把名字和成绩看成一个整体,只要是name相同,grade不同,就是两条记录
- SELECT name,SUM(salary) FROM student GROUP BY name,grade
name | sum(salary) |
zhang | 3000 |
wang | 3000 |
liu | 3500 |
wu | 2000 |
xu | 2500 |
- Group By中Select指定的字段限制
- select后的字段:
- 要么就要包含在Group By语句的后面,作为分组的依据;
- 要么就要被包含在聚合函数中。
- 错误:
- SELECT name, salary FROM student GROUP BY name
- select 后的字段 salary 不在 group by 后面,所以salary无法显示全部值。
- 正确1:
- SELECT name, salary FROM student GROUP BY name , salary
- select 后的字段 name,salary 都包含在group by 后面,两个字段分组。
- 正确 2:
- SELECT name,MAX(salary) FROM student GROUP BY name
- select 后的字段 salary 虽然不在 group by 后面,但是在聚合函数MAX(salary)里面,所以只会有一个值会正确。
- select后的字段:
group by的用法相关推荐
- SQL: ORA-00979 不是 GROUP BY 表达式 及 Group by 的用法说明
参看资源: [1]https://www.cnblogs.com/vigarbuaa/archive/2012/06/25/2561225.html [2]关于group by的用法 原理 - 码农之 ...
- Java正则表达式--Matcher.group函数的用法
https://www.cnblogs.com/jiafuwei/p/6080984.html Java正则表达式--Matcher.group函数的用法 原来,group是针对()来说的,group ...
- count/distinct/group by的用法总结
一. count.distinct.group by的用法: 1.count()函数是用来统计表中记录的一个函数,返回匹配条件的行数,不去重. 一般来说,一条select语句的执行顺序如下:from子 ...
- SQL中group by的用法
group by即按照给定字段对结果集进行分组,从字面意义上理解就是根据"by"指定的规则对数据进行分组,所谓的分组就是将一个"数据集"划分成若干个" ...
- SQL中group by的用法总结
一.简介SQL语言 SQL语言,是结构化查询语言的简称.SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统:同时也是数据库脚本文件的扩展名. SQL语言,是高 ...
- Mysql(11)——group by的用法
group by的作用是将字段中相等的分为一组: (1)直接用法 如上:可以见得:将两种数据分了出来:0和1. (2)与group_concat()联用 group_concat()的作用是统计每个分 ...
- mysql中group by 的用法解析
1. group by的常规用法 group by的常规用法是配合聚合函数,利用分组信息进行统计,常见的是配合max等聚合函数筛选数据后分析,以及配合having进行筛选后过滤. 聚合函数max se ...
- 关于group by的用法
文章目录 准备`sql` 执行 分析执行过程 用了很久的gorup by一道面试题让我突然觉得自己不会用了.原题是这样的:表A有三个列分别为a.b.c.语句select a,b,c from A gr ...
- sql group by having用法_神奇的 SQL,Group By 真扎心,原来是这样!
GROUP BY 后 SELECT 列的限制 标准 SQL 规定,在对表进行聚合查询的时候,只能在 SELECT 子句中写下面 3 种内容:通过 GROUP BY 子句指定的聚合键.聚合函数(SUM ...
最新文章
- VUE 框架添加全局公共方法 , 保留小数点后两位
- 每日一皮:前程序员离职后没人想接的代码...
- 点击左侧导航栏切换右侧商品(左右联动)
- 数码管时钟程序C语言00到99,[单片机]ACT89C51数码管时钟程序
- SAP Kyma的environmment和SAP 云平台的Global Account
- NGUI_2.6.3_系列教程三
- JAVA高并发工作笔记0001---高并发编程之ConcurrentLinkedDeque
- Html和Css学习笔记-html进阶-html5属性
- 系统分析与设计课程总结
- 语音信号处理(赵力)作业答案1-3章
- 【经典策略系列】之 Dual Thrust 交易策略
- android systrace log,Android性能优化之Systrace分析基础
- javascript 验证 国际格式 电话号码
- php图片幻灯片代码,JavaScript_简单常用的幻灯片播放实现代码,幻灯片自动播放图片是当前网 - phpStudy...
- java广度优先爬虫示例_广度优先搜索与网络爬虫
- Cairo-基本概念
- chrome浏览器一键切换搜索引擎,一键切换谷歌和百度搜索(不需要重新输入keyword,带关键词切换引擎)
- 苹果11蓝牙配对不成功怎么办_苹果手机蓝牙怎么连不上的解决步骤
- 手写 React 第 4 节 - 实现 Fiber
- 关于alert(12)与alert(1||2)输出问题解析
热门文章
- ABAP AMDP数据库存储过程(数据源)
- 音频提取以及人声处理
- html5怎样兼容ie浏览器版本,HTML5 兼容IE浏览器
- windows 系统错误码总结
- 程序员如何优雅地使用 macOS?
- The generalization-stability tradeoff in neural network pruning
- 如何把wma转换成mp3格式?三种方式任你使用
- pandas创建DataFrame的几种方式(建议收藏)
- Towards Robust Vision Transformer论文学习(CVPR2022)
- Deploy Linux Kernel on CRUX using VMware