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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • h2数据库如何连接_怎样远程连接数据库

    h2数据库如何连接_怎样远程连接数据库H2数据库支持如下3种连接模式: 内嵌模式(通过JDBC进行本地连接,应用和数据库在同一个JVM中) 服务器模式(通过JDBC或ODBC或TCP/IP进行远程连接) 混合模式(同时支持本地和远程连接)数据库连接URL说明:TopicURLFormatandExamples嵌入式(本地)连接jdb

    2022年10月11日
  • 一级倒立摆装置_智能控制倒立摆

    一级倒立摆装置_智能控制倒立摆一级倒立摆装置

    2022年8月18日
  • Linux系统结构详解

    Linux系统结构详解Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图1-1所示。1.linux内核Linux内核是世界上最大的开源项目之一,内核是与计算机硬件接口的易替换软件的最低级别。它负责将所有以“用户模式”运行的应用程…

    2022年5月25日
  • IntelliJ IDEA 创建Java项目[通俗易懂]

    IntelliJ IDEA 创建Java项目[通俗易懂]Java模块让你可以开发JavaSE和JavaEE应用程序。由Java模块提供的核心功能可通过加入各种技术和框架支持进行扩展。当您创建好一个项目后,您可以创建一个Java模块。您还可以添加一个Java模块到现有项目。注意:这里说的Java模块实际是一个Java项目,而IDEA的项目(Project)则相当于Eclipse的工作空间(workspace)的概念,相当于VS的解决方案(soluti

    2022年9月29日
  • accessor和mutator的区别_java concat方法

    accessor和mutator的区别_java concat方法实现数据封装的一种方法是使用accessors和Mutators。accessors和Mutators的作用是返回和设置对象状态的值。让我们学习如何用Java编写accessors和Mutators。例如,我们将使用一个Person类,它的状态和构造函数已经定义:accessor方法accessors方法用于返回私有字段的值。它遵循一种命名方案,将“get”前缀放在方法名称的开头。例如,让…

    2022年9月13日
  • docker部署web项目_docker web程序本地化

    docker部署web项目_docker web程序本地化前言前面我们运行的容器并没有一些什么特别的用处。接下来让我们尝试使用docker构建一个web应用程序。我们将在docker容器中运行一个PythonFlask应用来运行一个web

    2022年7月31日

发表回复

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

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