group by详解

group by详解一. 概述group_by的意思是根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组。二. 语法select 字段  from 表名 where  条件  group by    字段或者select 字段  from 表名 group by  字段  having  过滤条件注意:对于过滤条…

大家好,又见面了,我是你们的朋友全栈君。

一.  概述

group_by的意思是根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组。

二.  语法

select   字段    from   表名   where    条件     group   by       字段

或者

select   字段    from   表名   group  by    字段    having    过滤条件

注意:对于过滤条件,可以先用where,再用group  by或者是先用group  by,再用having

三.  案例

1  创建表格并插入数据

说明:在plsql  developer上创建表格并插入数据,以便下面进行简单字段分组以及多个字段分组,同时还结合聚合函数进行运算。

创建student表

      create table student
            (id  int not null ,
             name varchar2(30),
             grade varchar2(30),
             salary  varchar2(30)
             )

在student表中插入数据

        insert into student values(1,’zhangsan’,’A’,1500);
        insert into student values(2,’lisi’,’B’,3000);
        insert into student values(1,’zhangsan’,’A’,1500);
        insert into student values(4,’qianwu’,’A’,3500);
        insert into student values(3,’zhaoliu’,’C’,2000);
        insert into student values(1,’huyifei’,’D’,2500);

数据插入到student表中的结果

group by详解

 

2  单个字段分组

①  select   grade   from   student               查出所有学生等级(包括重复的等级)

group by详解

②  select  grade  from  student   group   by   grade       查出学生等级的种类(按照等级划分,去除重复的)

group by详解

3  多个字段分组

select  name , sum(salary)    from   student    group  by   name , grade      按照名字和等级划分,查看相同名字下的工资总和

注意:这里有一点需要说明一下,多个字段进行分组时,需要将name和grade看成一个整体,只要是name和grade相同的可以分成一组;如果只是name相同,grade不同就不是一组。

group by详解

4  配合聚合函数一起使用

常用的聚合函数:count() , sum() , avg() , max() , min()

count():计数

select  name , count(*)  from  student   group  by  name           查看表中相同人名的个数

得出的如下结果

group by详解

sum():求和

select  name , sum(salary)   from   student   group  by   name      查看表中人员的工资和(同姓的工资相加)

得出的如下结果

group by详解

avg():平均数

select  name , avg(salary)   from  student   group  by  name  , grade       查看表中人员的工资平均数(同姓工资平均数)

得出的如下结果

group by详解

max():最大值

select   grade , max(salary)   from   student   group  by   grade           查看按等级划分人员工资最大值

得出的如下结果

group by详解

min():最小值

select   grade , min(salary)   from   student   group  by   grade        查看按等级划分人员工资最小值

得出的如下结果

group by详解

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141139.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android 使用动态载入框架DL进行插件化开发

    Android 使用动态载入框架DL进行插件化开发

    2022年1月26日
    35
  • jvm常量池和字符串常量池_常量池中的字符串是对象吗

    jvm常量池和字符串常量池_常量池中的字符串是对象吗JVM——字符串常量池详解引言在Java开发中不管是前后端交互的JSON串,还是数据库中的数据存储,我们常常需要使用到String类型的字符串。作为最常用也是最基础的引用数据类型,JVM为String提供了字符串常量池来提高性能,本篇文章我们一起从底层JVM中认识并学习字符串常量池的概念和设计原理。字符串常量池由来在日常开发过程中,字符串的创建是比较频繁的,而字符串的分配和其他对象的分配是类似的,需要耗费大量的时间和空间,从而影响程序的运行性能,所以作为最基础最常用的引用数据类型,Java设计者在

    2022年7月28日
    1
  • 使用 Vue + LayUI 做后台管理、RESTful 交互

    使用 Vue + LayUI 做后台管理、RESTful 交互一、前言1、之前使用了React/Angular,使用起来显然是比jQuery好多了,但时隔半年,最近再次深入研究了vue,很惊喜。故以后选择MVC/MVVM框架的话,建议首选vue,主要是其代码结构,清晰简单。2、使用vue+layui了,但layui里边的layui.js模块vue.js冲突,因此放弃使用layui.js,导致很多高级…

    2022年6月25日
    25
  • 高光谱图像分类综述_高光谱图像样本进行扩增

    高光谱图像分类综述_高光谱图像样本进行扩增PCA-PrincipleComponentAnalysis主成分分析ICA-IndependentComponentAnalysis独立成分分析NWFE-Nonparametric

    2022年8月5日
    3
  • MyEclipse 配置SVN插件

    MyEclipse 配置SVN插件MyEclipse6.5: 1.打开Myeclipse,在菜单栏中选择Help→SoftwareUpdates→FindandInstall; 2.选择Searchfornewfeaturestoinstall,点击Next进入下一步; 3.点击“NewRemoteSite”按钮,在弹出的对话框中输入:      name:svn

    2022年7月21日
    8
  • pycharm 中文乱码_pycharm中文字体设置

    pycharm 中文乱码_pycharm中文字体设置问题:pycarm里面的中文,没有办法正常显示原因:因为Pycharm会使用系统默认的字体,所以当系统中没有这个字体的时候,他就没法显示解决办法:sudoyum-yinstallfontconfig(安装字体库)安装完成后,在/usr/share目录就可以看到fonts和fontconfig目录了寻找中文字体(可以在windows里面找,路径:C:\Windows\Fonts)cd/usr/share/fonts&&sudomakedirchinese

    2022年8月29日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号