sql中如果要分组查询,一般都会使用到group by语句,如何熟练使用group by语句呢,我分以下几点进行总结。

  1. Group by与聚合函数
  2. Group by与Having
  3. 需要注意的地方

Group by与聚合函数

  group by一般与聚合函数一起使用。这是因为group by之后结果集就变成了多个分组,而每个分组可能包含多条记录,要想针对每个分组进行操作,所以必须使用可以作用在多条记录上的聚合函数。比如,下面的示例就使用了group by和聚合函数查询每个PNR的总记录数,sql语句如下。

1 -- 1,Group by与聚合函数
2 -- 查询每个PNR的总记录数
3 SELECT NewPNR,COUNT(*) FROM dbo.RemoteSession
4 GROUP BY NewPNR;

  如果要对分组进行筛选呢?要怎么实现,请继续往下看。

Group by与Having

  要对分组后的结果进行筛选,一般使用having语句来实现。请看下面示例,代码如下。

1 -- 2,Group by与Having
2 -- 查询总记录数>1(或者说有重复的)的PNR
3 SELECT NewPNR,COUNT(*) FROM dbo.RemoteSession
4 GROUP BY NewPNR
5 HAVING COUNT(*)>1;

需要注意的地方

  关于group by的使用,有几个特别需要关注的地方。

  1. select语句指定的字段要么包含在group by语句中作为分组的依据;要么就要被包含在聚合函数中(比如:count,sum等)。
  2. 注意where与having的区别,where是在分组前对结果集进行过滤,而having是对group by分组后的结果集进行过滤。

参考资料

  1. SQL中Group By的使用
  2. sql group by 与 having的用法
  3. 深入浅出SQL教程之Group by和Having

转载于:https://www.cnblogs.com/mcgrady/p/4213847.html

Group by的使用方法相关推荐

  1. Allegro打散Group的两种方法操作指导

    Allegro打散Group的两种方法操作指导 Allegro可以建一个Group,也可以打散一个Group,当不需要器件,过孔走线等等以一个group形式体现,可以用下面的操作打散,具体操作如下 举 ...

  2. django中聚合aggregate和annotate GROUP BY的使用方法

    接触django已经很长时间了,但是使用QuerySet查询集的方式一直比较低端,只会使用filter/Q函数/exclude等方式来查询,数据量比较小的时候还可以,但是如果数据量很大,而且查询比较复 ...

  3. mysql group by 组内排序方法

    mysql的group by语法可以根据指定的规则对数据进行分组,分组就是将一个数据集划分成若干个小区域,然后再针对若干个小区域进行数据处理.本文将介绍mysql使用group by分组时,实现组内排 ...

  4. Group Policy Client解决方法

    最近我同学的电脑遇到了这样的一个问题:          在开机登录界面时无法进入,提示Group Policy Client服务未能登录 其实在开始我也没遇到这样的问题,上网查了很久的资料,最后终于 ...

  5. 在sql server里,日期字段按天数进行group by查询的方法

    比如一张表里有如下时间字段的记录: 2009-01-01 12:00:00 2008-12-23 11:00:11 2009-12-22 11:22:00 2009-01-01 14:00:00 20 ...

  6. mysql中关于group的语句指令_mysql不支持group by的解决方法小结

    下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了. 一旦开启 only ...

  7. select非group by字段的方法

    只需要将非group by字段放进函数中即可: 转载于:https://www.cnblogs.com/niwotaxuexiba/p/10200451.html

  8. 浅谈 underscore 内部方法 group 的设计原理

    前言 真是天一热什么事都不想干,这个月只产出了一篇文章,赶紧写一篇压压惊! 前文(https://github.com/hanzichi/underscore-analysis/issues/15)说 ...

  9. SQL删除重复数据方法

    原文:SQL删除重复数据方法 例如: id           name         value 1               a                 pp 2            ...

  10. 用户管理 之 用户(User)和用户组(Group)配置文件详解

    作者:北南南北 来自:LinuxSir.Org 摘要:本文详解用户(User)和用户组(Group)的配置文件,本文是<Linux 用户(User)和用户组(Group)管理概述>文档的关 ...

最新文章

  1. Instruments of Xcode
  2. print python 如何加锁_Python 进阶(一):多线程
  3. 我的7天=玩2天+窝5天
  4. php.ini settimelimit,PHP-set_time_limit()和ini_set('max_execution_time',...)之间的区别...
  5. Android Handler的内存泄露场景分析
  6. 【Echarts底层相关】
  7. 在centos上运行neural_artistic_style 风格转换
  8. C语言之浅析网络包解析
  9. oppok3如何刷机_OPPO K3 PCGM00刷机教程,卡刷升级更新官方固件系统包
  10. 【STM32】PS2遥控手柄使用和程序移植
  11. 前端做大屏显示,缩放比,分辨率怎样适配?
  12. 北京办理居住证的全流程
  13. 皇家每羊历险记(二)——地形制作
  14. Linux环境安装python3报错:“HTTP Error 416 Requested Range Not Satisfiable 正在尝试其它镜像”的解决方法
  15. 【Python游戏】咱就说Python实现一个蔡徐坤大战篮球的小游戏,可还行? | 附带源码
  16. Windows应用商店保留Windows 7特色
  17. 深度linux系统,深度操作系统
  18. dedecms去掉栏目广告
  19. 大数据技术原理与应用—第10讲 Spark(林子雨老师)课后习题
  20. 树莓派4B安装联想LJ2605D打印机驱动

热门文章

  1. postgresql查看表的创建者和表的权限
  2. 【文本匹配】cqrctr:文本匹配的破城长矛
  3. 【ACL2020】tBERT: 结合主题模型和BERT实现语义相似度分析
  4. 如何写论文?看下这份《科研论文撰写策略》为你指点一二
  5. 65 年来,全英国向他道歉三次
  6. 小知识 | 谈谈 损失函数, 成本函数, 目标函数 的区别
  7. 最全攻略:利用LightSeq加速你的深度学习模型
  8. 昨晚学妹参加了B站秋招笔试,还想考考我?
  9. 基于DEAP库的python进化算法--遗传算法实践--最短路径问题
  10. 我用过了TensorFlow、PyTorch等好几种框架,为什么还是吃不透深度学习算法?