sql的聚合函数及分组查询_sql组内分组

sql的聚合函数及分组查询_sql组内分组SQL的聚合函数及分组查询 要在这个世界上获得成功,就必须坚持到底:至死都不能放手。 count select count(*) from students #底层优化了 select count(1

SQL的聚合函数及分组查询

SQL的聚合函数及分组查询

要在这个世界上获得成功,就必须坚持到底:至死都不能放手。

count

select count(*) from students #底层优化了

select count(1) from students #效果和*一样

select count(age) from emp #慢,只统计非NULL的

max / min

select max(score) max from scores #求该字段的最大值

select min(score) min from scores #获取该字段的最小值

select class,max(score) from scores group by class #配合分组使用

sum / avg

select sum(score) from scores #求和

select avg(score) from scores #求平均数

分组 group by

  • 用于对查询的结果进行分组统计
    • group by表示分组,
    • having 子句类似where过滤返回的结果
select class,max(score) from scores group by class #聚合函数配合分组使用

这里的意思是从scores表中,查询班级class和最高成绩,按班级分组。

报错句分析:

Invalid use of group function

#select class,max(score) FROM scores where max(score) > 80 GROUP BY class;

先过滤再分组是高效的,但where中不能使用聚合函数,所以这里我们应该使用having子句。

select class,max(score) FROM scores GROUP BY class having max(score) > 80;

注意:这里是先查询分组完后,再执行having子句的过滤条件。

总结:

  • where 子句的作用是对查询结果进行分组前,将不符合where条件的数据去掉,即在分组之前过滤数据,where条件中不能使用聚合函数过滤出特定的数据。

  • having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚合函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组,但要注意,having中使用的过滤条件必须是查到的结果。

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

(0)
上一篇 2023-04-20
下一篇 2023-04-20

相关推荐

  • Python中Open函数用法详解

    Python中Open函数用法详解在Python中,我们可以使用Open函数来打开文件,进行读写操作。该函数是Python中文件IO操作的基础,功能非常强大。那么,本文将从多个角度,详细介绍Python中Open函数的使用方法。

    2024-05-19
    62
  • Python Args用法详解

    Python Args用法详解在Python编程中,使用函数进行开发是非常常见的操作。然而,当函数的参数数量增多时,函数调用的难度也会逐渐增加,同时参数传递的灵活性也会变得不够优秀。本文将会详细介绍Python中args参数的用法,以及在实际开发中的应用。

    2024-05-24
    63
  • mysql大表更新_sql根据一个表更新另一个表

    mysql大表更新_sql根据一个表更新另一个表MySQL中给一张千万甚至更大量级的表添加字段一直是比较头疼的问题,遇到此情况通常该如果处理?本文通过常见的三种场景进行案例说明。 1、 环境准备 数据库版本: 5.7.25-28(Perc

    2023-03-14
    145
  • Python Random Shuffle 列表随机打乱

    Python Random Shuffle 列表随机打乱Python Random Shuffle是Python内置的随机打乱列表的函数,适用于插入迭代器到列表中,可以通过随机打乱列表的顺序来增强数据的不确定性。该函数主要有两个参数,一个是需要打乱的列表,另一个是用于随机打乱列表的随机种子。当随机种子不变的情况下,每次随机得到的结果都是相同的,这正好可以用于数据可重现性的情景中。而当随机种子变化时,则可以用于演示统计学上无序的随机数据的情景中。

    2023-12-30
    112
  • 让我们和mysql谈场恋爱, 做一个整整懂她的男人!「建议收藏」

    让我们和mysql谈场恋爱, 做一个整整懂她的男人!「建议收藏」1.数据库概述1.什么是数据库?数据库就是【存储数据的仓库】,其本质是一个【文件系统】,数据按照特定的格式将数据存储起来,用户可以通过SQL对数据库中的数据进行增加,修改,删除及查询操作。2.什么是…

    2023-04-04
    147
  • Python集合运算简介

    Python集合运算简介在Python中,集合是一种无序、可变的数据类型,可以进行各种集合运算。常用的集合运算包括交集、并集、差集和对称差集。

    2024-06-16
    52
  • 在ef中使用数据库上下文需要注意哪些事项_无法在源表中获得一组稳定的行

    在ef中使用数据库上下文需要注意哪些事项_无法在源表中获得一组稳定的行 using System; using System.Collections.Generic; using System.Data; using System.Data.Common; us…

    2023-03-23
    164
  • mysql 主从配置失效的解决方法有哪些_sql无法访问数据库,请检查访问权限

    mysql 主从配置失效的解决方法有哪些_sql无法访问数据库,请检查访问权限
    在从数据库中查询 show slave status Slave_SQL_Running: No 1、程序可能在从数据库中进行了写操作 2、也可能是从数据库…

    2023-04-06
    155

发表回复

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