group by做为分组来使用,后面为条件,可以有多个条件,条件相同的为一组,配合聚合函数进行相关统计。在不同数据库中用法稍有不同,这里只测试mysql和oracle。

1.准备好一张数据表:

             

mysql                                                        oracle

2.首先以name为分组条件:

1 SELECT * FROM person
2 GROUP BY `name`;

在mysql中执行结果如下:

分析:

  在mysql中没有强调select指定的字段必须属于group by后的条件。若符合条件的字段有多个,则只显示第一次出现的字段。比如:以name为dd分组,id为1,2,3,4,5,但只显示1.同理,age也只显示1.

然后,虽然这种查询在语法上通过了,但结果并没有什么意义,因为其他字段并非需要的准确值。这在oracle中就行不通了。

在oracle中执行结果如下:

分析:

  oracle指出,select查询字段未包含在group by 的条件中。推测,首先通过select * from person可以看到oracle中id并不是升序,或者说没有默认升序。也就是查询的结果是不确定的,hash?这可能涉及到在磁盘的存储等等,这里不去深究。因此,并不能确认第一次查出来的字段的值,而且分组后不是条件的值被合并后没有意义。

结论:

  group by语句中select指定的字段必须是“分组依据字段”。

因此,只能这样查询:

SELECT name FROM person
GROUP BY name;

结果一致:

3.以name,age为查询依据,多条件分组

1 SELECT name,age FROM person
2 GROUP BY name,age;

结果:

  

    mysql                   oracle

显然,两组的查询策略是不同的。但最终结果是相同的。都是以条件组合的笛卡尔积。也就是每个条件都一一对应。

分组依据为多条件组合成一个条件,当组合条件相同时为一组。因此,dd:1和dd:2分为两组。

4.添加聚合函数

聚合函数有如下几种:

函数 作用 支持性
sum(列名) 求和  
max(列名) 最大值  
min(列名) 最小值  
avg(列名) 平均值  
first(列名) 第一条记录 仅Access支持
last(列名) 最后一条记录 仅Access支持
count(列名) 统计记录数 注意和count(*)的区别

首先,要明白聚合函数的用法。比如,count(列字段值),统计该字段值出现的次数:

1 SELECT name,COUNT(*)
2 from person
3 GROUP BY name;

结果为:

分析:

  首先进行分组工作,group by name,这时8条数据被分成两组:dd和mm;然后count的作用就是统计每组里面的个数,分别是5和3.

更直观的例子:

SELECT * FROM person;

1 SELECT count(name) from person;

,count(name)为统计所有的name数量,同样的结果为count(1),count(*).

5.where 和 having

  • where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
  • having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。

group by(mysql oracle的区别) 的基本用法相关推荐

  1. sql server,mysql,oracle的区别

    Oracle Oracle 能在所有主流平台上运行(包括Windows).完全支持所有的工业标准.采用完全开放策略.可以使客户选择最适合的解决方案.对开发商全力支持,Oracle并行服务器通过使一组结 ...

  2. mysql oracle sql区别吗_mysql数据库的SQL语句和oracle的有什么区别?详细点

    匿名用户 1级 2017-08-20 回答 区别如下: 1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Or ...

  3. mysql Oracle 的区别 你不能不知道的事

    Oracle与MySQL的SQL语句区别 2 表 2.1 创建表(同) create table tableName( columnName1 int, columnName2 int ) 2.2 删 ...

  4. oracle sql now函数,SQL Server,MySQL,Oracle,PostgreSQL中常用函数用法(1)日

    练习使用Hibernate没有用MySQL数据库,而是用了前不久接触的PostgreSQL,由于不同的数据对于相同的操作有各自的函数,MySQL的date_format(),在PostgreSQL中是 ...

  5. oracle类型sql转为mysql_Oracle和MySql之间SQL区别(等效转换以及需要注意的问题)...

    >本篇博文是Oracle和MySQL之间的等效SQL转换和不同,目前市面上没有转换两种SQL的工具,小编觉得以后也不一定会有,于是在业余时间整理了一下,如果有什么错误之处请留言告知,小编也是刚 ...

  6. MySQL与Oracle的区别

    MySQL与Oracle的区别 1.收费区别 MySQL是轻量型数据库,开源免费.Oracle是收费的而且价格非常高: 2.实例区别 MySQL一个实例可以操作多个库,而Oracle一个实例只能对应一 ...

  7. SQLplus 和mysql区别_mysql和oracle的区别有哪些

    MySQL和Oracle都是流行的关系数据库管理系统(RDBMS),在世界各地广泛使用:大多数数据库以类似的方式工作,但MySQL和Oracle的这里和那里总是存在一些差异的.本篇文章就给大家比较Or ...

  8. oracle 和mysql有什么区别_mysql和oracle的区别有哪些

    原标题:mysql和oracle的区别有哪些 MySQL和Oracle都是流行的关系数据库管理系统(RDBMS),在世界各地广泛使用:大多数数据库以类似的方式工作,但MySQL和Oracle的这里和那 ...

  9. mysql group b_mysql报错之5.7版本的 group by mysql不能使用group by

    mysql 查询提示 SELECT list is not in GROUP BY clause and contains nonaggregated column 'user_login.user_ ...

最新文章

  1. 【列表】python编程列表解析
  2. YYAnimatedImageView--gif在ios14之后只能播放一次
  3. ios 静态方法是否能被重写_小米新系统亮相,比苹果iOS更干净,21款手机支持升级...
  4. Interview:算法岗位面试—10.15下午—上海某公司算法岗位(偏机器学习,合资制造行业)技术面试考点之电话面试—研究项目的技术考察
  5. 第四次作业-四则运算
  6. 2018年7月5日笔记
  7. 这场戏里,到底是谁脏了?
  8. 你还认识变量吗?Java基础学习不可略过的基本语法,简而不漏,变量的定义赋值和分类,系统认识Java中的变量有哪些?
  9. 尝试引用非结构体数组的字段_剖析PHP底层数组是如何实现的
  10. java web接收tcp_Java多线程实现TCP网络Socket编程(C/S通信)
  11. 多线程之生产者与消费者问题
  12. ip domain-lookup命令解释
  13. Mac之间的 远程控制
  14. could和may区别请求_英语教学:外教这样区分can,may,could
  15. 信号调理方法总结笔记
  16. 苹果输入法怎么换行_最全的输入法皮肤,你想要的百度输入法都有
  17. Pyqt5 pandas matplotlib network自用操作
  18. 如何挖掘网站的长尾关键词?
  19. 购买计算机的作文英语,电脑英语作文_电脑,computer,英文_高中英语作文_作文地带...
  20. 黑马旅游网完整代码_JavaWeb+黑马旅游网

热门文章

  1. 360浏览器广告太多怎么办_360浏览器如何关闭广告自动推送
  2. Python random模块seed理解
  3. 部署java项目_企业最看重什么样的Java人才?
  4. 【Jmeter篇】jmeter+Ant+Jenkins接口自动化测试集成之报告优化(三)
  5. RuntimeError: Working outside of request context. This typically means that you attempted to use fun
  6. node中间件KOA函数
  7. Python爬虫从入门到放弃(二十)之 Scrapy分布式原理
  8. Hadoop集群(一) Zookeeper搭建
  9. 11.4 专利法与反不正当竞争法解读
  10. php 验证码需开启gd2