当前位置: 首页 > wzjs >正文

鄂尔多斯市建设网站万网

鄂尔多斯市建设网站,万网,内蒙古建筑培训网,做网站需要会什么背景 有时候我们需要汇总一些数据,比如查询一个班级的平均分数,这个时候我们需要的是把分数汇总,然后计算出一个平均值进行返回,并不需要返回某一列的值,针对这种场景,mysql中提供了一些聚合函数帮助快速完…

背景

有时候我们需要汇总一些数据,比如查询一个班级的平均分数,这个时候我们需要的是把分数汇总,然后计算出一个平均值进行返回,并不需要返回某一列的值,针对这种场景,mysql中提供了一些聚合函数帮助快速完成检索:

函数名功能说明示例场景
AVG()计算某列的平均值计算班级数学平均分
COUNT()统计某列的行数(或非 NULL 值的数量)统计学生总数
MAX()获取某列的最大值查找英语最高分
MIN()获取某列的最小值找出体育最低分
SUM()计算某列的总和计算全年级数学总分

接下来分别介绍每一个函数的用法。

AVG():计算平均值

仍然以下边的学生信息为例:
在这里插入图片描述
我们要统计这个班级学生的数学平均分:

select avg(math) as '三班数学平均分' from students;

在这里插入图片描述
注意,补充avg函数使用过程中的其他tips:

  1. 可以灵活和where等其他过滤条件组合
  2. avg函数只能计算单列的平均值,函数接受的参数就是列名
  3. 如果需要计算的目标列包含null值,avg函数会忽略该行

COUNT():计数

如果我们想要对表中的行数计算,可以使用count()函数,比如查询某个班级一共有多少人,就可以直接使用这个sql:

select count(*) from students;

在这里插入图片描述
count也可以接收列名作为参数,计算某一列的非空值的数量,比如我们想要查询参加这次数学考试的人数(需要过滤掉空值):

select count(math) from students;

在这里插入图片描述
从上边的例子可以看出,count可以接收两种参数:

  1. *:查询行数,但是不会过滤空值
  2. 列名:查询某一列行数,过滤空值

MAX():求最大值

max()函数用于求最大值,接收的参数也是列名,比如需要找出班级中的数学最高分:

select max(math) from students;

在这里插入图片描述
同样的,max()函数计算的时候也会忽略空值

另外,如果max()函数除了可以找到最大的数值,也可以用于计算最大日期,如果接收的参数列存储的是文本数据,排好序后,max()函数会返回最后一行

MIN():求最小值

找出班级数学最低分:

select min(math) from students;

在这里插入图片描述
min函数的注意事项和max一样,不再赘述,只不过用于求最小

SUM():求和函数

sum() 函数用于求和计算,比如求班级数学分数和(仅举例,虽然很少会有这个场景):

select sum(math) from students;

在这里插入图片描述
sum()函数还可以用来汇总计算值,举个例子,假如想要求出来班级三个科目的分数总和:

select sum(math+gym+en) from students;

在这里插入图片描述
sum()函数也会过滤掉空值

实际上所有的聚合函数都可以接收计算值作为参数,大家可以灵活运用

DISTINCT参数:去重

上边介绍了五个函数,它们的共同特点:

  1. 对所有行计算的时候,可以指定ALL参数(默认)或者不指定参数
  2. 如果需要去重,则可以使用DISTINCT函数

这里我们为了举的例子更加贴合实际场景,需要做一些新的数据准备,我们使用常见的订单场景来创建数据库和表信息:

-- 创建电商数据库
CREATE DATABASE IF NOT EXISTS ecommerce_db 
CHARACTER SET utf8mb4 
COLLATE utf8mb4_unicode_ci;-- 使用数据库
USE ecommerce_db;-- 创建订单表
CREATE TABLE orders (order_id VARCHAR(20) PRIMARY KEY COMMENT '订单号(唯一)',customer_name VARCHAR(50) NOT NULL COMMENT '下单人名称',order_date DATETIME NOT NULL COMMENT '下单时间',amount DECIMAL(10,2) NOT NULL COMMENT '订单金额'
);INSERT INTO orders (order_id, customer_name, order_date, amount) VALUES
('ORD20231010001', '张三', '2023-10-10 09:15:23', 158.50),
('ORD20231010002', '李四', '2023-10-10 11:30:45', 299.00),
('ORD20231010003', '王五', '2023-10-10 14:20:11', 425.75),
('ORD20231011004', '张三', '2023-10-11 10:05:34', 78.90),
('ORD20231011005', '赵六', '2023-10-11 16:45:09', 650.00),
('ORD20231012006', '李四', '2023-10-12 08:30:17', 230.40),
('ORD20231012007', '孙七', '2023-10-12 13:15:28', 345.60),
('ORD20231013008', '王五', '2023-10-13 09:40:55', 99.99),
('ORD20231013009', '张三', '2023-10-13 17:20:03', 512.30),
('ORD20231014010', '周八', '2023-10-14 10:10:10', 188.00),
('ORD20231014011', '李四', '2023-10-14 15:25:47', 276.50),
('ORD20231015012', '吴九', '2023-10-15 11:11:11', 420.00),
('ORD20231015013', '王五', '2023-10-15 14:30:19', 155.75),
('ORD20231016014', '郑十', '2023-10-16 09:00:00', 333.33),
('ORD20231016015', '张三', '2023-10-16 12:45:38', 199.90),
('ORD20231017016', '李四', '2023-10-17 08:05:22', 488.60),
('ORD20231017017', '王五', '2023-10-17 16:20:14', 75.25),
('ORD20231018018', '钱多多', '2023-10-18 10:30:45', 666.66),
('ORD20231018019', '张三', '2023-10-18 14:15:03', 350.40),
('ORD20231019020', '李四', '2023-10-19 09:50:57', 245.80);

在上边的订单表中,存在同一个人有多个订单的场景,如果我们想要统计一共有多少名顾客下过单,可以很容易想到使用count(0函数,但是很明显存在一个人购买多次,存在多个订单记录的情况,所以需要对数据进行去重处理,这里可以根据下单人进行去重:

select count(distinct customer_name) as 下单人数 from orders;

在这里插入图片描述

组合使用

上边的举例都比较单一,实际上一个sql语句是可以同时使用多个聚合函数的,比如下边的场景:

-- 检查重复客户订单
SELECT customer_name AS 客户名称,COUNT(*) AS 订单数量,SUM(amount) AS 总消费金额
FROM orders
GROUP BY customer_name
ORDER BY 订单数量 DESC;

在这里插入图片描述
以上就是关于聚类查询的简单介绍了,下期我们一起学习分组查询!

http://www.dtcms.com/wzjs/386409.html

相关文章:

  • 重庆蒲公英网站建设公司青岛网站排名公司
  • 全屏网站设计技巧站长工具seo综合查询权重
  • 建设网站需要投入高端网站建设公司哪家好
  • 咨询网站模板搜索seo优化托管
  • 织梦cms sql注入破解网站后台管理员账号密码seo培训课程
  • 网站更新方法郑州疫情最新消息
  • 网站如何上传到主机网络营销软件站
  • 做网站需要多少职务模板建站和开发网站区别
  • 手机网站模板 html5 下载工具最新的国际新闻
  • 网站建设 鄂icp备短视频seo排名加盟
  • wordpress 添加表seo经典案例
  • 店铺的网站怎么做网络营销常见术语
  • 杭州网站建设开发有限公司seo优化托管
  • 世界著名网站开发语言营销推广48个方法
  • 添加书签网站代码站长工具seo综合查询网
  • 做赌博网站推广赚佣金武汉seo百度
  • asp动态网站建设答辩最好用的磁力搜索神器
  • 义乌小商品批发网站营销策略的重要性
  • 网站建设哪家较好seox
  • 天津网站建设服务公司淘宝网官方网站
  • 网络设计课程设计前言seo技术培训价格表
  • wordpress获取某个分类下所有分类江西seo
  • 用网站做的人工智能百度关键词快速排名
  • 厦门外贸网站建设哪家公司大福州网站优化
  • 北京建网站的价格免费收录网站推广
  • 网站如何建设推广长春seo
  • 网络推广 SEO优化 网站建设百度seo关键词优化
  • 河南省住房和城乡建设局网站seo排名规则
  • 湛江网站建设方案服务站长统计app软件下载
  • 做微信封面的网站广告推广策划