本章内容和大家分享的是数据当中的分组查询。分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1  多表查询2)而在实际项目中的分组查询的使用也是比较多的,作为初学者来说,学好分组查询的姿势是十分有必要的!

分组查询概念

什么是分组查询:分组查询是按照一定的规则进行分组,分组以后数据会聚合,需要使用聚合函数,但是使用聚合函数不一定要分组,分组的关键字是group by。

首先,我们先来思考一下下面的sql语句的正确性:

---1.select * from t_student group by sex;

---按照性别分组 男或者女 但是实际显示的是所有性别,*是所有 所以会报错,因为这种方式不是group by 表达式

查看结果:

---.select sex from t_student;

---这种方式最后显示的是所有的男女,也不是分组我们想要的 男 女 数据

查看结果:

---3.select t.studentid,t.sex from t_student t group by sex; --6条id数据对应2条数据 不是group by表达式

查询结果:

---4.select sex from t_student group by sex;

---按照性别分组,只显示性别没有任何毛病--成功

查看结果:

我们看一下聚合函数的使用,聚合函数有count()  sum()  max()  min()  avg()  round()

--聚合函数

count() ---统计

sum() ---求和

max() ---最大值

min() ---最小值

avg() ---平均值

round() ---四舍五入函数

下面小编给大家演示一下关于这些聚合函数的基础操作,有助于我们后面的分组使用:

select max(age) from t_student;

--求年龄的最大值

select count(studentid) from t_student;

--求学生总数

select sum(studentid) from t_student;

--所有学生id的和

select min(studentid) from t_student;

--求学生id中的最小值

select avg(studentid) from t_student;

--求学生id的平均值

再议聚合函数:

select sex,sum(age) from t_student group by sex;

--以性别分组,显示性别中的男女年龄的之和

查看结果:

select sex,count(studentid) from t_student group by sex;

--以学生性别分组,显示男生和女生分别有多少?

查看结果:

select sex,max(age) from t_student group by sex;

--以性别分组,显示男生中年龄最大的和女生中年龄最大的。

查看结果:

ok,我们通过上面的例子来继续练习一下分组查询。

--统计706班男生,女生人数?

select sex,count(t2.studentid) from t_class t1,t_student t2 where t1.classid=t2.classid and t1.classid=

group by sex;

查询结果:

--查询826班男生、女生年龄的总和

select sex,sum(t2.age) from t_class t1,t_student t2 where t1.classid=t1.classid

and t1.classid= group by sex;

查看结果:

--查询每门课程的总分、最高分、最低分、平均分

--查询每门课程的总分、最高分、最低分、平均分

select t1.coursename 课程名字,max(t2.score)最高分,min(t2.score)最低分,avg(t2.score)平均分 from t_course t1,t_score t2 where t1.courseid=t2.courseid

group by t1.coursename;

查看结果:

--查询826班每位学生每门课程的总分、平均分、最高分、最低分

select t3.coursename 课程名字,t2.name 学生姓名,

sum(t4.score) 总分,

avg(t4.score) 平均分,

max(t4.score) 最高分,

min(t4.score) 最低分

from t_class t1, t_student t2, t_course t3, t_score t4

where t1.classid = t2.classid

and t2.studentid = t4.studentid

and t4.courseid = t3.courseid

and t1.classid =

group by t3.coursename,t2.name;

查看结果:

--查询每个学员的总分、平均分、最高分、最低分,只显示总分在250分以上的学员

敲笔记了哈:

1.where 使用在分组查询之前,where后面不能使用聚合函数

2.having 分组之后的过滤,having 紧跟group by ,有having 一定有group by ,但是有group by 不一定有having

3.having 后面可以使用聚合函数

--显示姓名

select t1.name 学生姓名,

sum(t2.score) 总分,

avg(t2.score) 平均分,

max(t2.score) 最高分,

min(t2.score) 最低分

from t_student t1, t_score t2

where t1.studentid = t2.studentid

group by t1.name having sum(t2.score)>;

查看结果:

另外的一种展示结果:

--不显示性名

select sum(t2.score) 总分,

avg(t2.score) 平均分,

max(t2.score) 最高分,

min(t2.score) 最低分

from t_student t1, t_score t2

where t1.studentid = t2.studentid

group by t1.studentid

having sum(t2.score) > ;

查询结果:

到此,分组查询我们就介绍到这里了。。。

Oracle数据库之分组查询及排序

分组查询:使用 group by 来设置分组,把该列具有相同值的多条记录当成一组记录来处理,然后只会输出一条记录,得到的结果会默认使用升序的方式进行排列. 规则: (1)如果使用了分组函数,或者是 g ...

oracle数据库之分组查询(转)

本章内容和大家分享的是数据当中的分组查询.分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1  多表查询2)而在 ...

Oracle和MySQL分组查询GROUP BY

Oracle和MySQL分组查询GROUP BY 真题1.Oracle和MySQL中的分组(GROUP BY)有什么区别? 答案:Oracle对于GROUP BY是严格的,所有要SELECT出来的字段 ...

ASP.NET操作ORACLE数据库之模糊查询

ASP.NET操作ORACLE数据库之模糊查询 一.ASP.NET MVC利用OracleHelper辅助类操作ORACLE数据库 //连接Oracle数据库的连接字符串 string connect ...

oracle数据库元数据SQL查询

oracle数据库经典SQL查询 .查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from ...

Oracle数据库的状态查询

本文来源:huang_xw 的 1 状态查询 启动状态 SQL语句 结果 nomount select status from v$instance; ST ...

Oracle数据库日期范围查询的两种实现方式

参考文档:http://database.51cto.com/art/201108/288058.htm Oracle数据库日期范围查询有两种方式:to_char方式和to_date方式,接下来我们通 ...

[转载]Oracle数据库基础--SQL查询经典例题

Oracle基础练习题,采用Oracle数据库自带的表,适合初学者,其中包括了一些简单的查询,已经具有Oracle自身特点的单行函数的应用 本文使用的实例表结构与表的数据如下: emp员工表结构如下: ...

Oracle数据库的基本查询

本文用的是Oracle 10g数据库,利用PL/SQL Developer的集成开发环境(安装可以自行百度) Oracle数据库  ---> 数据库实例  --->  表空间(逻辑单位)( ...

随机推荐

druid数据库密码加密程序编写

第一步:引入 druid-1.0.1.jar 架包 第二步: 编写程序 package nihao; import com.alibaba.druid.filter.config.ConfigTool ...

poj3270

Cow Sorting Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6750   Accepted: 2633 Descr ...

IE, FF, Safari前端开发常用调试工具

一些前端开发 IE 中的常用调试工具: Microsoft Script Debugger —— Companion.JS need to install this Companion.JS —— J ...

JavaMail 发送邮件

JavaMail邮件发送 引用maven jar包 javax.mail

NFC-P2P MODE

今日看见有关国内电信业者要合组TSM (Trusted Service Manager)提供NFC 服务的新闻, 这是属于NFC 所能提供的3种Mode中的Card emulation mode (就 ...

Linux下搭建ntp时间同步服务器

1.ntpd软件安装(略过) 2.修改ntp.conf配置文件 vi /etc/ntp.conf 第一种配置:允许任何IP的客户机都可以进行时间同步将“restrict default kod nom ...

sysstat -6.0.2 lib not install

执行oracle安装包./setup.sh 后跳出,无法执行数据库的安装,并提示类似下面 的错误信息-- ERROR:===wed Aug 15 08:43:23 CST 2012===sysstat ...

浅谈session,cookie,sessionStorage,localStorage的区别及应用场景

浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和session cookie和session都是用来跟踪浏览器 ...

Hyperledger Fabric 架构梳理

区块链的数据结构 State数据结构 由peer维护,key/value store Ledger  记录了所有成功和不成功的状态更新交易.Ledger被ordering service构造,是一个全 ...

Android 之 tools:context和tools:ignore两个属性的作用

oracle数据库怎么分组查询,oracle数据库之分组查询相关推荐

  1. oracle 分组 排名,Oracle数据库之分组查询及排序

    分组查询:使用 group by 来设置分组,把该列具有相同值的多条记录当成一组记录来处理,然后只会输出一条记录,得到的结果会默认使用升序的方式进行排列. 规则: (1)如果使用了分组函数,或者是 g ...

  2. oracle遍历表做查询,oracle 语句之对数据库的表名就行模糊查询,对查询结果进行遍历,依次获取每个表名结果中的每个字段(存储过程)...

    语句的执行环境是plsql的sql窗口, 语句的目的是从整个数据库中的所有表判断 不等于某个字段的记录数 . 代码如下: declare s_sql clob:=''; -- 声明一个变量,该变量用于 ...

  3. 查询oracle表上重复的数据库,如何确定Oracle数据库表重复的记录

    正在看的ORACLE教程是:如何确定Oracle数据库表重复的记录. 作为一个Oracle数据库开发者或者DBA,在实际工作中经常会遇到这样的问题:试图对库表中的某一列或几列创建唯一索引时,系统提示O ...

  4. Oracle数据库:子查询、单行子查询,多行子查询,in,any,all语句,子查询的练习案例

    Oracle数据库:子查询.单行子查询,多行子查询,in,any,all语句,子查询的练习案例 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 ...

  5. dbvisualizer查询mysql中文乱码_使用PLSQL Developer和DbVisualizer查询oracle数据库时出现乱码...

    使用PLSQL Developer和DbVisualizer查询oracle数据库时,出现查询数据中文乱码情况. 查看了一下数据库编码格式 select * from v$nls_parameters ...

  6. oracle和mysql查询_ORACLE 数据库 查询语句与DML语句

    一.查询语句 ORACLE 数据库中获得数据表中的结果,称为查询语句,其关键词是 select(下面其所有的示例均为scott模式下的对象) 1.1 查询语句基础 1.1.1 获得表中全部字段与结果 ...

  7. [转]查询oracle数据库的数据库名、实例名、ORACLE_SID

    转自:http://hi.baidu.com/goodoog/item/d5238575c063042fd7a89cae 数据库名.实例名.数据库域名.全局数据库名.服务名 , 这是几个令很多初学者容 ...

  8. python查询oracle数据库_python针对Oracle常见查询操作实例分析

    本文实例讲述了python针对Oracle常见查询操作.分享给大家供大家参考,具体如下: 1.子查询(难): 当进行查询的时候,发现需要的数据信息不明确,需要先通过另一个查询得到, 此查询称为子查询: ...

  9. oracle删除查询的数据库语句,Oracle简略的语句 查询 删除 修改(1)

    Oracle简单的语句 查询 删除 修改(1) Dual系统表介绍 数据类型: 数据是信息数字表现形式,信息的加工处理是以大量的结构化数据为载体进行的,数据库管理系统的核心是数据库,数据库的主要对象是 ...

最新文章

  1. mysql表级锁和行级锁
  2. 组件和模块间Activity路由框架
  3. 网络工程师成长日记417-西安如家酒店无线覆盖技术支持
  4. 浙企加入中国大数据产业生态联盟 共商数据价值
  5. 【51nod - 1076】2条不相交的路径(Tarjan无向图判环)
  6. LeetCode--171--Excel表列序号
  7. MySQL下载和安装以及问题解决
  8. 使用图形窗口连接(navicat)
  9. Java生成真正格式的Excel文件
  10. 工程勘察设计收费标准2002修订版_2020抚顺花海工程设计收费标准
  11. 目标检测之Selective Search原理简述(转)
  12. redis缓存队列+MySQL +php任务脚本定时批量入库
  13. 问题三十:《Ray Tracing In One Weekend》封面图形生成
  14. Google基本语法二,指令
  15. php 32位检签,php crc32 计算字符串的 32 位 CRC(循环冗余校验)
  16. linq判断集合中相同元素个数_使用Linq获取集合的最后N个元素?
  17. mysql导入.sql文件
  18. 贪心科技NLP训练营成果展示(附视频回放)
  19. 为什么我们的数据还不够开放?
  20. 第844期机器学习日报(2017-01-09)

热门文章

  1. chatgpt的150个指令大全
  2. 彷徨 | office快捷键大全
  3. 电商品牌私域流量社群运营推广裂变sop搭建营销计划表格方案
  4. 菜鸟的草缸 篇四:菜鸟的草缸:二氧化碳CO2
  5. 银联支付更换正式环境后报错存在风险而关闭了订单
  6. labview—XY图的使用
  7. android socket上传视频教程,android socket视频流方案
  8. 13. 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值5钱,一只母鸡值3钱,三只小鸡值1钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?
  9. Double和Float类型的max、min、isNaN、isFinite、isInfinite方法
  10. 冰雪之城鸿蒙碎片,冰雪之城地图推荐: