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 表的结果:
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不同,就是两条记录
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)里面,所以只会有一个值会正确。

group by的用法相关推荐

  1. SQL: ORA-00979 不是 GROUP BY 表达式 及 Group by 的用法说明

    参看资源: [1]https://www.cnblogs.com/vigarbuaa/archive/2012/06/25/2561225.html [2]关于group by的用法 原理 - 码农之 ...

  2. Java正则表达式--Matcher.group函数的用法

    https://www.cnblogs.com/jiafuwei/p/6080984.html Java正则表达式--Matcher.group函数的用法 原来,group是针对()来说的,group ...

  3. count/distinct/group by的用法总结

    一. count.distinct.group by的用法: 1.count()函数是用来统计表中记录的一个函数,返回匹配条件的行数,不去重. 一般来说,一条select语句的执行顺序如下:from子 ...

  4. SQL中group by的用法

    group by即按照给定字段对结果集进行分组,从字面意义上理解就是根据"by"指定的规则对数据进行分组,所谓的分组就是将一个"数据集"划分成若干个" ...

  5. SQL中group by的用法总结

    一.简介SQL语言 SQL语言,是结构化查询语言的简称.SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统:同时也是数据库脚本文件的扩展名.   SQL语言,是高 ...

  6. Mysql(11)——group by的用法

    group by的作用是将字段中相等的分为一组: (1)直接用法 如上:可以见得:将两种数据分了出来:0和1. (2)与group_concat()联用 group_concat()的作用是统计每个分 ...

  7. mysql中group by 的用法解析

    1. group by的常规用法 group by的常规用法是配合聚合函数,利用分组信息进行统计,常见的是配合max等聚合函数筛选数据后分析,以及配合having进行筛选后过滤. 聚合函数max se ...

  8. 关于group by的用法

    文章目录 准备`sql` 执行 分析执行过程 用了很久的gorup by一道面试题让我突然觉得自己不会用了.原题是这样的:表A有三个列分别为a.b.c.语句select a,b,c from A gr ...

  9. sql group by having用法_神奇的 SQL,Group By 真扎心,原来是这样!

    GROUP BY 后 SELECT 列的限制 标准 SQL 规定,在对表进行聚合查询的时候,只能在 SELECT 子句中写下面 3 种内容:通过 GROUP BY 子句指定的聚合键.聚合函数(SUM ...

最新文章

  1. VUE 框架添加全局公共方法 , 保留小数点后两位
  2. 每日一皮:前程序员离职后没人想接的代码...
  3. 点击左侧导航栏切换右侧商品(左右联动)
  4. 数码管时钟程序C语言00到99,[单片机]ACT89C51数码管时钟程序
  5. SAP Kyma的environmment和SAP 云平台的Global Account
  6. NGUI_2.6.3_系列教程三
  7. JAVA高并发工作笔记0001---高并发编程之ConcurrentLinkedDeque
  8. Html和Css学习笔记-html进阶-html5属性
  9. 系统分析与设计课程总结
  10. 语音信号处理(赵力)作业答案1-3章
  11. 【经典策略系列】之 Dual Thrust 交易策略
  12. android systrace log,Android性能优化之Systrace分析基础
  13. javascript 验证 国际格式 电话号码
  14. php图片幻灯片代码,JavaScript_简单常用的幻灯片播放实现代码,幻灯片自动播放图片是当前网 - phpStudy...
  15. java广度优先爬虫示例_广度优先搜索与网络爬虫
  16. Cairo-基本概念
  17. chrome浏览器一键切换搜索引擎,一键切换谷歌和百度搜索(不需要重新输入keyword,带关键词切换引擎)
  18. 苹果11蓝牙配对不成功怎么办_苹果手机蓝牙怎么连不上的解决步骤
  19. 手写 React 第 4 节 - 实现 Fiber
  20. 关于alert(12)与alert(1||2)输出问题解析

热门文章

  1. ABAP AMDP数据库存储过程(数据源)
  2. 音频提取以及人声处理
  3. html5怎样兼容ie浏览器版本,HTML5 兼容IE浏览器
  4. windows 系统错误码总结
  5. 程序员如何优雅地使用 macOS?
  6. The generalization-stability tradeoff in neural network pruning
  7. 如何把wma转换成mp3格式?三种方式任你使用
  8. pandas创建DataFrame的几种方式(建议收藏)
  9. Towards Robust Vision Transformer论文学习(CVPR2022)
  10. Deploy Linux Kernel on CRUX using VMware