聚合函数和分组查询(有宝藏)
Posted 小陈的世界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聚合函数和分组查询(有宝藏)相关的知识,希望对你有一定的参考价值。
聚合函数和分组查询的顺序语法
SELECT 字段1,字段2,...
FROM 表名
[WHERE 条件表达式
GROUP BY 字段 HAVING 条件表达式
ORDER BY 字段 ASC(升序) DESC (降序)
]
函数名称 | 功能 |
sum | 返回选取的某列值的总和,总里程数 |
max | 返回选取的某列的最大值,最贵的票价 |
min | 返回选取的某列的最小值,最短里程 |
avg | 返回选取的某列的平均值,平均年龄 |
count | 返回选取的某列或记录的行数 |
SUM函数:select sum(miles) 线路总里程数 from line;
select sum(miles) 线路总里程数 from line where company=' 公交二公司 ';
max/min 获取所有线路里程的最大值和最小值:
select max(miles) 最长线路里程 , min(miles) 最短线路里程 from line;
avg(column) 用于返回数字型字段 column 的平均值,注意:列值为 null 的字段不参与运算。
select avg(miles) 平均里程数 from line;
count 函数用于统计记录行数。使用 count 函数时,必须指定一个列的名称或使用“*”。使用“*”可获取整张表的记录行数。注意:列值为 null 的字段不参与运算。
使用 group by 子句可以将数据划分到不同的组中,实现对记录的分组查询。group by 从英文字面的意义上可以理解为“根据(by)一定的规则进行分组(group)”,该子句的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对这若干个小区域进行统计汇总。
group by 字段列表 [having 条件表达式 ]
出现上述查询逻辑错误的原因在于:lineNo 为非聚合函数列,但却不是分组列字段。所以, 当我们在使用 group by 子句进行分组查询时,出现在 select 子句中的非聚合函数列一定要出现在 group by 子句的分组字段列表当中
以上是关于聚合函数和分组查询(有宝藏)的主要内容,如果未能解决你的问题,请参考以下文章
MYSQL聚合函数分组查询和连接查询(一般人我不告诉他)废寝忘食只为博君一赞!