MySQL基本语法

2 篇文章 0 订阅
2 篇文章 0 订阅

MySQL进阶-函数

合计函数

1.平均值AVG
例如求所有学生的平均分:
select AVG(Score) from students;
分别求男生、女生的平均分:
select Sex,avg(Score) from students group by Sex;
(select后边的‘Sex’只是为了在输出的平局分前边显示出性别)
或者,把平均分以新的名字“avg_sex”输出
select avg(Score) as avg_sex from students group by Sex;

再复杂一点的,输出得分高于平均分的学生的学号和姓名:
select ID,Name from students where Score>(select avg(Score) from students)

2.求和SUM
求所有学生的总分
select sum(Score) from students;
其它操作,类似AVG

3.COUNT
统计表中记录的条数
select count(*) from students;
按性别统计记录的条数
select count(*) from students group by Sex;
统计得分高于平均分的条数
select count(*) from students where Score>(select avg(Score) from students;)
4.最大值MAX 最小值MIN
找到分数最高的学生
select Name,MAX(Score) from students;
5.GROUP BY
group by用于合计函数;首先根据一个或多个列对原始数据分组,然后再执行相关的函数。比如上边求男、女生的平均分。
6.HAVING
现在,如果要求group by分组后的数据进一步做条件筛选,可能有人会想用where啊。但是where并不能与合计函数一块儿使用,未解决此,就有了HAVING函数。
这个例子不太好举,用W3SCHOOL的一个例子

O_Id    OrderDate   OrderPrice  Customer
1      2008/12/29     1000      Bush
2      2008/11/23     1600      Carter
3      2008/10/05     700       Bush
4      2008/09/28     300       Bush
5      2008/08/06     2000      Adams
6      2008/07/21     100       Carter

找到订单总金额少于2000的客户

select Customer,sum(OrderPrice) from Orders 
goup by Customer Having sum(OrderPrice)<2000;

7.Order By
对各个顾客的消费金额排序(从高到低)
select Customer,sum(OrderPrice) as total from orders group by Customer order by total desc;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值