一、聚合函数
将一列数据作为一个整体,进行纵向计算
1.常用聚合函数
函数 功能
count 统计数量
max 最大值
min 最小值
avg 平均值
sum 求和
语法:
SELECT 聚合函数(字段列表)FROM 表名;
2.实例
1.count
举例
统计user的人数
代码
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT COUNT(*) FROM user;
执行结果
2.max
举例
在user表中找出最大年龄
代码
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT max(age) FROM user;
执行结果
3.avg
举例
求表user年龄的平均值
代码
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT avg(age) FROM user;
执行结果
4.sum
举例
对user表中的年龄求和
代码
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT sum(age) FROM user;
执行结果
二、分组查询
1.语法
SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件]([]在这里只是用于区分,写代码时不加[])
WHERE是分组之前进行过滤,HAVING是分组之后对结果进行过滤。WHERE不能对聚合函数进行判断,而HAVING可以
2.实例
举例
分别统计表user不同年龄人的个数
代码
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT age,count(*) FROM user GROUP BY age;
执行结果
举例
查找年龄大于18的名字
代码
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT * FROM user WHERE age>18 GROUP BY name;
执行结果
三、排序查询
1.语法
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2......;)(默认为升序)
2.实例
1.升序
1.举例
根据年龄对表user进行升序排序
2.代码
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT * FROM user ORDER BY age asc ;
3.执行结果
2.降序
1.举例
根据年龄对表user进行降序排序
2.代码
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT * FROM user ORDER BY age desc ;
3.执行结果
实例
根据年龄对表user进行升序排序,年龄相同,根据id降序
代码
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT * FROM user ORDER BY age asc,id desc ;
执行结果