SQL中的聚合函数使用总结

SQL中的聚合函数使用总结一般在书写sql的是时候很多时候会误将聚合函数放到where后面作为条件查询,事实证明这样是无法执行的,执行会报【此处不允许使用聚合函数】异常。为什么会报异常呢?其原因很简单:having放在groupby的后面 groupby后面只能放非聚合函数的列 where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使…

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

一般在书写sql的是时候很多时候会误将聚合函数放到where后面作为条件查询,事实证明这样是无法执行的,执行会报【此处不允许使用聚合函数】异常。为什么会报异常呢?其原因很简单:

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

那聚合函数在什么情况下使用或者应该处在sql文中的哪个位置呢
聚合函数只能在以下位置作为表达式使用:

  • select 语句的选择列表(子查询或外部查询);
  •  compute 或 compute by 子句;
  • having 子句;

其实在诸多实际运用中,聚合函数更多的是辅助group by 使用,但是只要我们牢记where的作用对象只是行,只是用来过滤数据作为条件使用。

常见的几个聚合函数

  • 求个数:count
  • 求总和:sum
  • 求最大值:max
  • 求最小值:min
  • 求平均值:avg

当然还有其他类型的聚合函数,可能随着对应sql server不同,支持的种类也不一样。

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

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

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


相关推荐

  • 解析LayoutSubviews

    解析LayoutSubviews解析LayoutSubviews原博:http://www.cnblogs.com/YouXianMing/p/3897543.html从百度上搜索了一下layoutSubviews的用处,以下是搜索的结果,当然,笔者是会一一验证的.1、init初始化不会触发layoutSubviews2、addSubview会触发layoutSubviews3、设置vie

    2022年7月25日
    9
  • 【转载】C# sleep 和wait的区别

    【转载】C# sleep 和wait的区别

    2021年11月20日
    46
  • msm8953之spi配置

    msm8953之spi配置//===========================================spi5msm8953.dtsialiases{spi5=&spi_5;};spi_5:spi@7af5000{/*BLSP1QUP5*/compatible=”qcom,spi-qup-v2″;…

    2022年10月18日
    6
  • javascript常用判断写法

    js验证表单大全,用JS控制表单提交,javascript提交表单目录:1:js字符串长度限制、判断字符长度、js限制输入、限制不能输入、textarea长度限制 2.:js判断汉

    2021年12月24日
    56
  • DMA控制器8237A「建议收藏」

    DMA控制器8237A「建议收藏」1DMA系统简介DMA(directmemoryaccess)是一种外设与存储器或者存储器与存储器之间直接传输数据的方式,在进行DMA存取时,CPU让出总线控制权,不在采用输入输出指令的方法进行数据存取,而采用一个专门的硬件DMAC(DirectMemoryAccessControl)控制电路,减少了中间环节,从而提高了传输速率。1.1DMA基本原理DMA直接实现I/O与存储器之间的数据传送。①当I/O接口准备好,希望进行DMA操作时,就像DMAC发出DMA请求信号DRQ(DMARe

    2022年5月18日
    56
  • 联合索引(复合索引)和单个索引[通俗易懂]

    联合索引(复合索引)和单个索引[通俗易懂]背景: 为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下。一、联合索引测试注:Mysql版本为5.7.20创建测试表(表记录数为63188):CREATETABLE`t_mobilesms_11`( `id`bigint(20)NOTNUL…

    2022年5月7日
    160

发表回复

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

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