【MySQL】汇总数据

news/2024/7/7 19:43:20

目录

一、聚集函数

1.AVG()参数

2.COUNT()函数

3.MAX()函数

4.MIN()函数

5.SUM()函数

二、聚集不同值

三、组合聚集函数


一、聚集函数

聚集函数:运行在行组上,计算和返回单个值的函数,用来汇总数据

                                                    SQL聚集函数

AVG()返回某列的平均值
COUNT()返回某列的行数
MAX()返回某列的最大值
MIN()

返回某列的最小值

SUM()返回某列值之和

1.AVG()参数

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

示例:在表t_goods中算出price的平均值放在avg_price列中,avg_price是一个别名

输入: select AVG(price)

           as avg_price

           from t_goods;

输出:

 AVG()也可以用来确定特定列或行的平均值。

示例:包含where子句,约束vend_id = 2的产品

输入:select AVG(prod_price)

           as avg_price

           from products

           where vend_id = 2;

输出:

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

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

2.COUNT()函数

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

COUNT()函数的两种表示方式:

  • 使用COUNT(*)对表中行的数目进行计数,不管表列中包含的时空值
  • 使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。

示例:根据name计算t_user表中的人员总数

输入:select COUNT(*)

           as name

           from t_user;

输出:

 NULL值:如果指定列名,则指定列的值为空的行被COUNT()函数省略,但如果COUNT()函数中用的是(*),则不忽略。

3.MAX()函数

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

示例:在表t_goods中找到price列的最大值

输入:select MAX(price) 

           as MAX_price

           from t_goods;

输出:

 注意:对非数值数据使用MAX()函数   虽然MAX()函数一般用来找出最大的数值或日期值,

但MySQL允许将它用来返回任意列中的最大值,包括返回文本列中的最大值。在用于文本数据时,如果数据按相应的列排序,则MAX()返回最后一行。

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

4.MIN()函数

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

示例:在表t_goods中找到price列的最小值

输入: select MIN(price)

           as MIN_price

           from t_goods;

输出:

 

 注意:MySQL允许将MIN()用来返回任意列中的最小值,包括返回文本列中的最小值。在用于文本数据时,如果数据按相应的列排序,则MAX()返回最前面的行。

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

5.SUM()函数

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

示例:在表t_goods中计算price的总和并放在SUM_price列中

输入:select SUM(price)  

           as SUM_price

           from t_goods;

输出:

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

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

二、聚集不同值

以上五个函数都可以都可以如下使用:

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

distinct的作用就是去重

注意:如果指定列名,则distinct只能用于count()。distinct不能用于count(*),因此不允许使用count(distinct),否则会产生错误。类似的,distinct必须使用列名,不能用于计算或表达式。

将distinct用于MAX和MIN函数   虽然技术上可以用在这俩个函数上,但是没有实际价值,最大值和最小值不管是否包含不同值都是相同的。

三、组合聚集函数

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

示例:在t_goods中找出price的数量以及最大值,最小值,平均值

输入:select count(*) as price,

                     MAX(price) as MAX_price,

                    MIN(price) as MIN_price,

                    AVG(price) as AVG_price

            from t_goods;

输出:

 取别名:在指定别名以包含某个聚集函数的结果时,不应该使用表中的实际列名。这样做使SQL更易于理解和使用。


http://lihuaxi.xjx100.cn/news/1429328.html

相关文章

【LeetCode】338.比特位计数

题目 给你一个整数 n &#xff0c;对于 0 < i < n 中的每个 i &#xff0c;计算其二进制表示中 1 的个数 &#xff0c;返回一个长度为 n 1 的数组 ans 作为答案。 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;[0,1,1] 解释&#xff1a; 0 --> 0 1 -…

RestTemplate HTTPS请求忽略SSL证书

问题描述 使用RestTemplate发送HTTPS请求的时候&#xff0c;出现了这样的一个问题&#xff1a; sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification …

Endnote插入生成参考文献的四种方式

Endnote插入生成参考文献的四种方式 为了熟练Endnote进行在word中插入参考文献&#xff0c;本文介绍四种插入生成参考文献的四种方式。 一、采用Endnote插入按钮方式生成 word选中插入参考文献位置—转入endnote—选中要插入的文献—点击Endnote插入按钮&#xff0c;过程如图…

Android Studio实现Spinner下拉列表

效果图 点击下拉列表 点击某一个下拉列表 MainActivity package com.example.spinneradapterpro;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.Spinn…

VGGNet剪枝实战:使用VGGNet训练、稀疏训练、剪枝、微调等,剪枝出只有3M的模型(二)

文章目录 稀疏训练VGGNet剪枝导入库文件测试函数定义全局参数BN通道排序制作Mask剪枝操作 微调微调方法微调结果 稀疏训练VGGNet 新建train_sp.py脚本。稀疏化训练的过程和正常训练类似&#xff0c;不同的是在BN层中各权重加入稀疏因子&#xff0c;代码如下&#xff1a; def …

Mysql报错1194 - Table ‘‘ is marked as crashed and should be repaired的解决办法

本篇文章主要讲解&#xff1a;Mysql报错1194 - Table ‘’ is marked as crashed and should be repaired的解决办法。 日期&#xff1a;2023年8月9日 作者&#xff1a;任聪聪 具体现象 说明&#xff1a;执行sql语句查询或者检索相关数据时会出现如下报错内容&#xff1a; 11…

CSV文件编辑器——Modern CSV for mac

Modern CSV for Mac是一款功能强大、操作简单的CSV文件编辑器&#xff0c;适用于Mac用户快速、高效地处理和管理CSV文件。Modern CSV具有直观的用户界面&#xff0c;可以轻松导入、编辑和导出CSV文件。它支持各种功能&#xff0c;包括排序、过滤、查找和替换&#xff0c;使您能…

Qt事件过滤器

1 介绍 事件过滤器是一种机制&#xff0c;当某个QObject没有所需要的事件功能时&#xff0c;可将其委托给其它QObject&#xff0c;通过eventFilter成员函数来过滤实现功能。 2 主要构成 委托&#xff1a; ui->QObject1->installEventFilter(QObject2); eventFilter声明 …