排序 聚合 分组

1.排序   asc 正序(从小到大)desc 逆序     不写asc和desc默认为正序。

select * from 数据表名称 order by 字段 ;

eg: select * from students where (age between 18 and 34)and gender =1 order by age asc;按年龄从小到大排。

eg: select * from students where (age between 18 and 34)and gender =1 order by age  desc;按年龄从大到小排。

eg: select * from students where (age between 18 and 34)and gender =1 order by age  desc,id desc;按年龄从大到小排,相同的根据年龄从大到小排。

 

2.聚合函数

作用:用于计算某个值。

 eg: 计算男生人数 :

select count(*) from students where gender=1;

select count(*)as 男性人数  from students where gender=1;

eg: 计算女性年龄最大值(最小值)max (min): 
select  max(age) from students where gender=2;

select  max(age)as 年龄最大值 from students where gender=2;

eg: 总和 sum      平均 avg 

四舍五入,保留一位小数 round(123.23,1) 123.23 是要四舍五入的值, 1是保留的小数位数。

C语言保存小数时保存的的都是约数,所以为了数据的准确性,在数据库存储小数时,先将它放大到整数,来保证数据的准确性,在取数据的时候再除以原来的位数。

使用聚合函数时不分组时只可以有聚合函数一个字段。

select 后可以跟字段、表达式以及函数。 

 

3. 分组

作用:与聚合函数搭配,达到其他字段与聚合函数一起查询的目的。

group by:

select 区别组的字段 from 数据表名称 group by  区别组的字段;

与聚合函数搭配:

eg:select  gender,count(*) from 数据表名称 group by  gender;

执行顺序:先分组,然后调用聚合函数,分别计算各组的值,最后一起查询出来。

group_concat( name,id,年龄) 显示组内姓名,id号和年龄    括号内可填数据表的字段以及空格等等 (类似于printf函数)

eg: select  gender,group_concat(name) from 数据表名称 group by  gender;

查询多个分组内的一个分组:

select gender,count(*) from students where gender=1 group by gender; 查询男性及它的数量。

having :

筛选符合条件的分组:

eg:查询性别为男性且平均年龄大于30的分组及分组内的姓名

select gender,group_concat(name) from students where gender=1 group by gender having avg(age)>30;

having 和 where 的区别:having用聚合函数做判断,位置在group by后面;where 用数据表中的字段做判断 ,位置在group by前面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值