聚合
把字段(列名)的值聚集合并起来,用来计算
聚合函数:
1. 把一个字段的值全部聚集合并起来,可以用来运算,并且会返回结果
2. 会忽略NULL
聚合函数 | 用法 | 代码 |
---|---|---|
sum | 求和 | select sum (数值列名) from 表名 |
avg | 求平均值 | select avg (数值列名) from 表名 |
max | 求最大值 | select max (列名) from 表名 |
min | 求最小值 | select min (列名) from 表名 |
count | 求有多少行数据 | select count (列名 / *) from 表名 |
注:max和min可用于字符串列,以获得按字母顺序排列的最大或最小值
示例:
--求买下该表内所有车子一共要多少钱
select sum (cPrice) as 总价格 from cars
--求车子的平均寿命为多少
select avg (cYear) as 平均寿命 from cars
--求价格这一列的最大值
select max (cPrice) as 最贵 from cars
--显示车子的最低价格为多少?
select min (cPrice) as 最低价格 from cars
--统计该表内总共有多少辆车
select count (*) as 车辆总数 from cars
分组
把一个字段相同的值合并成一个组,该组之后的字段可以利用聚合函数来计算
注:
- 如果有group by,那么select之后跟着的列名只能是分组列名或者聚合函数
- 分组之前的条件用where
- 分组之后的条件用having
完整的查询的语法结构:
select top n 列名,聚合函数 from 表名
where 分组前条件
group by 分组列名
having 分组后条件
order by 列名 asc(升序)/desc(降序)
示例:
--显示每个城市下分别有多少名学员,举例:
select city as 城市, count (*) as 人数 from student
group by city
--按城市进行分组
--显示属于该城市人数
--要有3名以上的城市名和人数
select city as 城市名 , count (*) as 人数 from student
group by city
having COUNT(*) > 3
--显示平均成绩高于80分的学员及平均成绩
select sName as 课程名 , avg (score) as 平均分 from StuScore
group by sName
having avg (score) > 80
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~