今天要分享给大家的是SQL Server中的分组数据。

一、Group By语句

  1. 概念:Group By语句根据 “By”指定的规则对数据进行分组,即将一个“数据集” 划分成若干个“小区域”, 然后针 对若干个“小区域”进行数据处理。GROUP BY 子句通常与聚合函数一起用于统计数据。
  2. 语法:

GROUP BY 子句为列中的每个值组合生成一个组。

3.举例:使用group by查询客户ID为1,2的分组数据

在上图中,可以看到查询结果,id为1查询到两组年份;id为2查询到两组年份;

二、GROUP BY子句和聚合函数

在上个例子中,从图中看到我们除了使用Group by语句外,还使用了聚合函数year()。那么我们就来了解一下聚合函数吧!

  1. 概念:聚合函数对组执行计算并返回每个组的唯一值。

例如, COUNT() 函数返回每个组中的行数。 其他常用的聚合函数是: SUM() , AVG() , MIN() , MAX() 。GROUP BY 子句将行排列成组,聚合函数返回每个组的统计量(总数量,最小值,最大值,平均值,总和 等)。

如果要引用 GROUP BY 子句中未列出的任何列或表达式,则必须使用该列作为聚合函数的输入。 否则,数据库系统将会提示错误,因为无法保证列或表达式将为每个组返回单个值。

  1. 举例:

查询返回每个城市的客户数量

三.、SQL Server Having子句

HAVING 子句通常与[GROUP BY]子句一起使用,以根据指定的条件列表过滤分组。

语法:

在此语法中, GROUP BY 子句将行汇总为分组, HAVING 子句将一个或多个条件应用于这些每个分组。 只有使条件评估为 TRUE 的组才会包含在结果中。 换句话说,过滤掉条件评估为 FALSE 或 UNKNOWN 的 组。

因为SQL Server在 GROUP BY 子句之后处理 HAVING 子句,所以不能通过使用列别名来引用选择列表中指 定的聚合函数。

举例:使用having子句与count()函数查找每年至少下过两个订单的客户

在上图中, 首先, GROUP BY 子句按客户和订单年份对销售订单进行分组。 COUNT() 函数返回每个客户每年下达的订单数。 其次,HAVING 子句筛选出订单数至少为 2 的所有客户。

好了,今天的分享就到这里吧!

SQL Server分组数据相关推荐

  1. SQL Server 2008中原生的分层数据类型:hierarchyid

    SQL Server 2008中SQL应用系列--目录索引 如果是在SQL 2000中,我们需要读取分层结构数据时,不得不借助递归.在SQL server 2005中,我们可以使用CTE,当然,好的数 ...

  2. SQL Server里Grouping Sets的威力

    在SQL Server里,你有没有想进行跨越多个列/纬度的聚集操作,不使用SSAS许可(SQL Server分析服务).我不是说在生产里使用开发版,也不是说安装盗版SQL Server. 不可能的任务 ...

  3. SQL必知必会个人总结(SQL SERVER)

    运行环境和数据: sql server 2019,Microsoft SQL Server Management Studio 18 数据: 创建表:在Microsoft SQL Server Man ...

  4. 整理:sql server 中sql语句执行顺序

    原文地址为: 整理:sql server 中sql语句执行顺序 SQL Server 查询处理中的各个阶段(SQL执行顺序) SQL 不同于与其他编程语言的最明显特征是处理代码的顺序.在大数编程语言中 ...

  5. 充分利用 SQL Server Reporting Services 图表

    最近在查SSRS的一些文章,看到MSDN在有一篇不错的文章,许多图表设置都有说明,共享给大家.. 其中有说明在SSRS中如果去写条件表达写和报表属性中的"自定义代码",文章相对比较 ...

  6. 【Sql Server】数据库的3大服务

    在数据库SQL SERVER中,处理常用的sql server数据库引擎,还有其他3大服务,分别是集成服务,报表服务,分析服务. 集成服务商可以配置包,这里的包可以理解是数据库引擎里的用户数据库.可以 ...

  7. 【Sql Server】DateBase-自动化

    强大的SQL Server有着神奇的自动化功能,来处理一些人为处理不了的事情! 自动化功能:T-sql语言,系统命令.脚本语言.复制命令.创建角色.索引重建.报表 管理元素:作业.警报.操作员.计划 ...

  8. 【Sql Server】DateBase-视频总结

    最近看完了数据库视频,内容繁杂,但也不是无迹可寻! 这是第三遍关于数据库的学习了,随着一遍一遍的深入,更加了解了它的全貌,虽然现在对于数据库还不能到达熟练操作的地步,但至少放我手上不在犯怵了. SQL ...

  9. sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系

    原创链接:https://www.cnblogs.com/lxf1117/p/6762315.html sql server登录名.服务器角色.数据库用户.数据库角色.架构区别联系 1.一个数据库用户 ...

最新文章

  1. 使用pg_stat_statement监控pgsql遇到的问题
  2. python培训好学吗-Python0基础好学吗?
  3. 基于Web的质量和测试度量指标
  4. string类的用法详解
  5. 【最简单的例子】Editor.md的初步使用
  6. git使用--提交代码
  7. IOS设置导航栏返回按钮,并添加事件返回主页面
  8. 让php4和php5共存的方法
  9. bpsk在瑞利信道matlab,请教BPSK在瑞利信道下的误码率仿真
  10. centos 使用 scl 软件集
  11. 人民币大写的正确写法(开票据事项)
  12. 戴尔-卡耐基:《人性的弱点 How to Win Friends And Influence People》总结
  13. android 12去掉屏幕锁屏(屏幕默认锁屏方式改成无)
  14. vue 项目实践 -ele 表单验证
  15. 时间加减计算器_初级会计职称考试不让带计算器?!手把手教你使用机考系统计算器,再不看就晚了!...
  16. Springboot垃圾分类管理系统836b7计算机毕业设计-课程设计-期末作业-毕设程序代做
  17. 三维动画项目实训① ------(3.17-3.24)
  18. 程序员初创公司的合伙人股权的进入和退出机制设计-20151020
  19. 广州蓝景分享—程序员必备的3个JavaScript插件,让你的视频更实用
  20. python 日历壁纸_Excel+Python=精美壁纸日历 任意DIY

热门文章

  1. php递归获取文件夹,php递归遍历文件夹
  2. 武汉,一座被低估的城市!(2)
  3. 字节跳动到底为什么能成功?十个公式深层分析 (含底层业务逻辑,及落地方法拆解)
  4. MySQL语句优化利器EXPLAIN
  5. 绝对好用,解决:Invalid character found in the request target. The valid characters are defined。。。
  6. 港科报道 | 香港科大与北京市人才工作领导小组办公室合作与交流备忘录“云签约”仪式成功举办...
  7. 【C语言中缀转后缀】
  8. web前端学习中CSS,JS代码压缩
  9. ABB机器人作西门子1200PLC的profinet从站
  10. 蓝牙信标的优势及应用场景