很多时候,我们查询数据的时候都不会把明细数据查询出来,那样一般意义也不大。更多的时候是根据业务需求,把数据聚合成业务能直接使用的数据。MYSQL中有5个聚合函数,如下面5个,用的最多的还是count和sum,下面分别介绍一下用法。
【COUNT】
在MySQL中,COUNT()函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数,使用方法有以下两种:
求order表中,查询一共有多少条订单数,SQL语句如下↓
【SUM】
在MySQL中,SUM()是一个求总和的函数,返回指定列值的总和。
求order表中所有产品销售数量,SQL语句如下↓
【AVG】
在MySQL中,AVG()函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。
求order表中,2021年所有产品的平均单价,SQL语句如下↓
【MAX/MIN】
在MySQL中,MAX()函数是用来返回指定列中的最大值。
求order表中,查询最大的单价价格,SQL预计如下↓
在MySQL中,MIN()函数是用来返回指定列中的最小值。
求order表中,查询最小的单价价格,SQL预计如下↓
【结合GROUP BY】
正常情况下,聚合函数都是搭配着GROUP BY来使用的。可以是按省份聚合、产品聚合、时间聚合等等。下面演示每个品牌最低单价的聚合,其他几个聚合函数使用方式一样,SQL语句如下↓
还可以用ORDER BY排个序,求每个品牌累计销售价格的SQL语句,从高到低排序↓
End
◆ PowerBI开场白
◆ Python高德地图可视化
◆ Python不规则条形图
1.select concat(name, money) from account:拼接字段
2.select length(name) from account:查询字节长度(根据编码集utf-8,一个汉字占三个字节)
3.select ifnull(money, 10) from account:如果money为null,显示10
4.select round(money,1) from account:保留一位小数四舍五入
5.select floor(money) from account:向下取整
6.select ceil(money) from account:向上取整
7.select truncate(money, 1) from account:截断(截取一位小数)
8.select mod (10, 3):取余(相当于select 10%3)
9.select upper(name) from account:将名字变成大写
10.select lower(name) from account:将名字变成小写
11.select substring(name, 1) from account:截取名字下标从1开始的所有字段(注意:mysql的下标都是从1开始)
12.select substring(name, 1, 4) from account:截取名字下标从1开始,长度为4的字段
13.select now():返回当前系统的日期和时间
14.select curdate():返回当前系统的日期
15.select curtime():返回当前系统的时间
16.select date_format(now(), '%Y年%m月%d日') as '当前时间':将时间转换成字符串
17.select count(name) from account:计算name的个数(忽略null)
18.select count( ) from account:计算个数(不忽略null,类似:select count(1) from account)
19.select lpad(name, 10, ' '), money from account:指定字段在左边填充到指定长度(rpad:右边填充)
20.select replace(name, 'an', '*'), money from account:替换指定字段
21.select * from user limit 0,5:查询前5条数据(下标0开始,数量:(page - 1) * size, size)
22.select * from boy union select * from girl:两个结果合成一个(会自动去重,不去重用:union all)
1.select sum(money) from account:求和(忽略null,null和任何值相加都为null)
2.select sum(money) from account:求平均数(忽略null)
3.select max(money) from account:求最大值(忽略null)
4.select min(money) from account:求最小值(忽略null)
5.select name, money, if(money is null, '呵呵', '哈哈') 备注 from account:if语句
6.case条件语句
1.create table copy like user:复制user表(只复制表的字段)
2.create table copy select * from user:复制user表(字段数据一起复制)
3.create table copy select username,age from user:复制user表(复制指定的字段,数据一起复制)
4.create table copy select username,age from user where 0:复制user表(复制指定的字段,数据不复制)
5.alter table 表名 add|drop|modify|change column 列名【列类型 约束】:修改表
1.等值连接:select s.studen, t.teacher from study s, teacher t where s.t_id = t.id(求交集部分)
运行在行组上,计算和返回单个值的函数。
AVG() 通过对表中行数计数并计算特定列值之和,求得该列的平均值。 AVG() 可用来返回所有列的平均值,也可以用来返回特定列或行的平均值。
COUNT() 函数进行计数。可利用 COUNT() 确定表中行的数目或符合特定条件的行的数目。
MAX() 返回指定列中的最大值, MAX() 要求指定列名。
返回指定列的最小值,要求指定列名。
用来返回指定列值的和(总计)。
以上提到的聚集函数都可以如下使用:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)