九、排序与分组

先来说说排序,排序其实很简单,就是指定查询出的结果中的字段用来排序,字段可以是多个字段。

 

如创建一张学生表,现在根据性别查询学生,根据学生姓名和年龄排序 组合升序排序。升序是使用ASC字段。

select * from student where sex = 'm'  order by stName,age ASC

排序的语句通常是order by [字段1],[字段2] ASC/DESC;  DESC代表的是降序排列。  

 

分组其实也比较简单。分组的核心理解应该这样去理解,选定一个表,按照指定字段分组,并统计每一组的个数。如一个学校里边所有的学生在一张表里,这张表中有每个学生的班级id。现在要统计这个学校每个班级有多少学生。就可以用分组来实现。 

select  classId,count(*)  from student  where schoolId = 1 GROUP BY classId;

也就是说,分组返回的信息永远是一个用来分组的字段和对这个结果进行操作的函数,一般这个函数可以是count(*),SUM(*),AVG(*)。 这个三个函数分别是,计数,求和,求平均数。函数的参数可以是表达式。SUM函数代表是把分组里边所有的数值相加。count代表每一个分组中有多少条数据。平均数就是每一组的所有数值相加除以总数。

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

分组语句格式比较单一,所以只要记牢就很好理解了。通常使用时,会将此语句当成一个临时表与其他语句复合嵌套使用。

分组的字段同样可以是多个字段,在学生表里,如一个班级中有男女,同时所有班级的学生在一张表里,现在想知道每个班里有多少人。

就可以根据班级id分组。如果想知道每个班级里的男同学和女同学分别有多少人,那就可以按照班级id和性别分组。在统计数量。

SELECT class_id ,sex,count(*) from student GROUP BY class_id,sex

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zanglengyu

敲碗要饭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值