【SQL 必知必会】- 第九课 汇总数据

这篇具有很好参考价值的文章主要介绍了【SQL 必知必会】- 第九课 汇总数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

聚集函数

         AVG()函数

        只用于单个列

        COUNT()函数

        COUNT()函数有两种使用方式:

        MAX()函数

        对非数值数据使用MAX()

        MIN()函数

        对非数值数据使用MIN()

        SUM()函数

        在多个列上进行计算

聚集不同值

        注意:

        提示:

组合聚集函数


聚集函数

        对某些行运行的函数,计算并返回一个值。

        我们经常需要汇总数据而不用把它们实际检索出来,为此SQL 提供了专门的函数。使用这些函数,SQL 查询可用于检索数据,以便分析和报表生成。

        为方便这种类型的检索,SQL 给出了5 个聚集函数,见表。这些函数能进行上述检索。与前一章介绍的数据处理函数不同,SQL 的聚集函数在各种主要SQL 实现中得到了相当一致的支持。

【SQL 必知必会】- 第九课 汇总数据

         AVG()函数

        AVG()通过对表中行数计数并计算其列值之和,求得该列的平均值。AVG()可用来返回所有列的平均值,也可以用来返回特定列或行的平均值

        只用于单个列

        AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数。

        AVG()函数忽略列值为NULL 的行。


        COUNT()函数

        COUNT()函数进行计数。可利用COUNT()确定表中行的数目或符合特定条件的行的数目。

        COUNT()函数有两种使用方式:

         使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。

         使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL 值。

        COUNT(*)与COUNT(1)几乎没区别,因为绝大部分情况下,1列是非空的主键。

        如果指定列名,则COUNT()函数会忽略指定列的值为空的行,但如果COUNT()函数中用的是星号(*),则不忽略。


        MAX()函数

        MAX()返回指定列中的最大值。MAX()要求指定列名。

        对非数值数据使用MAX()

        虽然MAX()一般用来找出最大的数值或日期值,但许多(并非所有)DBMS 允许将它用来返回任意列中的最大值,包括返回文本列中的最大值。在用于文本数据时,MAX()返回按该列排序后的最后一行。

        MAX()函数忽略列值为NULL 的行。


        MIN()函数

        MIN()的功能正好与MAX()功能相反,它返回指定列的最小值。与MAX()一样,MIN()要求指定列名。

        对非数值数据使用MIN()

        虽然MIN()一般用来找出最小的数值或日期值,但许多(并非所有)DBMS 允许将它用来返回任意列中的最小值,包括返回文本列中的最小值。在用于文本数据时,MIN()返回该列排序后最前面的行。

        MIN()函数忽略列值为NULL 的行。


        SUM()函数

        SUM()用来返回指定列值的和(总计)。

        SUM()也可以用来合计计算值。

SELECT SUM(item_price*quantity) AS total_price
FROM OrderItems WHERE order_num = 20005;

        在多个列上进行计算

        如本例所示,利用标准的算术操作符,所有聚集函数都可用来执行多个列上的计算。

        SUM()函数忽略列值为NULL 的行。


聚集不同值

        以上5 个聚集函数都可以如下使用。

         对所有行执行计算,指定ALL 参数或不指定参数(因为ALL 是默认行为)。
         只包含不同的值,指定DISTINCT 参数。

        ALL 参数不需要指定,因为它是默认行为。如果不指定DISTINCT,则假定为ALL。

        注意:

        DISTINCT 不能用于COUNT(*)

        如果指定列名,则DISTINCT 只能用于COUNT()。DISTINCT 不能用于COUNT(*)。类似地,DISTINCT 必须使用列名,不能用于计算或表达式。

        提示:

        将DISTINCT 用于MIN()和MAX()
        虽然DISTINCT 从技术上可用于MIN()和MAX(),但这样做实际上没有价值。一个列中的最小值和最大值不管是否只考虑不同值,结果都是相同的。


组合聚集函数

        目前为止的所有聚集函数例子都只涉及单个函数。但实际上,SELECT 语句可根据需要包含多个聚集函数。

SELECT COUNT(*) AS num_items,
        MIN(prod_price) AS price_min,
        MAX(prod_price) AS price_max,
        AVG(prod_price) AS price_avg
FROM Products;

        聚集函数用来汇总数据。SQL 支持5 个聚集函数,可以用多种方法使用它们,返回所需的结果。这些函数很高效,它们返回结果一般比你在自己的客户端应用程序中计算要快得多。文章来源地址https://www.toymoban.com/news/detail-408220.html

到了这里,关于【SQL 必知必会】- 第九课 汇总数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【学习笔记-SQL必知必会】Microsoft SQL Server Express和SQL Server Management Studio安装

    为了实现书中的SQL查询,需要使用一个数据库管理系统(DBMS),在其上进行操作,按书中介绍: Windows 用户可以使用Microsoft SQL Server Express,这是强大的SQL Server 的一个免费版本,它还包括一个用户友好的客户端叫SQL Server Management Studio。 所以这里对Microsoft SQL Server Express和SQ

    2024年02月05日
    浏览(57)
  • 架构师必知必会系列:物联网数据处理与分析

    作者:禅与计算机程序设计艺术 物联网(IoT)已经成为一个全新的互联网发展模式,它将物理世界、信息网络和人工智能等多种技术融合在一起。随着物联网的广泛应用,传感器、节点设备、云计算平台和应用软件日益壮大。因此,对物联网数据的采集、存储、分析、处理、

    2024年02月06日
    浏览(65)
  • 必知必会Java

    你好,我是阿光。 最近想着把工作中使用过的java命令都梳理一下,方便日后查阅。虽然这类文章很多,但自己梳理总结后,还是会有一些新的收获。这也是这篇笔记的由来。 今天先聊聊 jps 命令。 jps 命令是JDK提供的一个工具,用于查看目标系统上的Java进程基本信息(进程

    2024年02月05日
    浏览(51)
  • MySql必知必会

    Buffer Pool基本概念 Buffer Pool:缓冲池,简称BP。其作用是用来缓存表数据与索引数据,减少磁盘IO操作,提升效率。 Buffer Pool由 缓存数据页(Page) 和 对缓存数据页进行描述的 控制块 组成, 控制块中存储着对应缓存页的所属的 表空间、数据页的编号、以及对应缓存页在Buffer Poo

    2024年01月22日
    浏览(65)
  • 聊聊Flink必知必会(二)

    Flink是一个有状态的流处理框架,因此需要对状态做持久化,Flink定期保存状态数据到存储空间上,故障发生后从之前的备份中恢复,这个过程被称为Checkpoint机制。而Checkpoint为Flink提供了Exactly-Once的投递保障。 流处理是一个数据不断输入的过程,为了更好更方便的快照,需要

    2024年02月08日
    浏览(48)
  • 聊聊Flink必知必会(五)

    聊聊Flink的必知必会(三) 聊聊Flink必知必会(四) 从源码中,根据关键的代码,梳理一下Flink中的时间与窗口实现逻辑。 对数据流执行 keyBy() 操作后,再调用 window() 方法,就会返回 WindowedStream ,表示分区后又加窗的数据流。如果数据流没有经过分区,直接调用 window() 方法则会返

    2024年02月05日
    浏览(65)
  • 聊聊Flink必知必会(六)

    Flink是一个分布式系统,需要有效地分配和管理计算资源才能执行流应用程序。它集成了所有常见的集群资源管理器,如Hadoop YARN和Kubernetes,但也可以设置为作为一个独立的集群运行,甚至作为一个库。 Flink运行时由两种类型的进程组成:一个JobManager和一个或多个taskmanager。

    2024年02月04日
    浏览(55)
  • ChatGPT入门必知必会

    更多文章欢迎关注公众号: stackoveriow 2023年是真正意义上的AI之年,因为ChatGPT 2007年,iPhone开启了智能手机时代, 2023年,我们迎来了人工智能时代,我们正处于历史的大转折点上,这也许是启蒙运动级别的思想和社会转折,工业革命级别的生产和生活转折 。继22年12月份从GP

    2023年04月18日
    浏览(123)
  • 聊聊Flink必知必会(七)

    虽然数据流中的许多操作一次只查看一个单独的事件(例如事件解析器),但某些操作会记住多个事件的信息(例如窗口算子)。 这些操作称为有状态的(stateful)。 有状态操作的一些示例: 当应用程序搜索某些事件模式(event patterns)时,状态(state)将存储迄今为止遇到的事件序

    2024年02月04日
    浏览(49)
  • MySQL必知必会(初级篇)

    数据库 (DataBase,DB),是统一管理的、长期存储在计算机内的、有组织的相关数据的集合。特点是数据见联系密切、冗余度小、独立性高、易扩展,并且可以为各类用户共享。 MySQL :是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的

    2023年04月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包