sql语句order by与group by

一、order by与group by的用法
1.orderby的用法
1)单一列排序
例1:默认排序:
select * from info
在这里插入图片描述
例2:按照no倒序排序
select * from info order by no desc;
在这里插入图片描述
2)多个列属性排序
选择多个列属性进行排序,然后排序的顺序是,从左到右,依次排序。
如果前面列属性有些是一样的话,再按后面的列属性排序。
例:
select * from info order by name desc, age desc
在这里插入图片描述
2.group by的用法
group by按照查询结果集中的某一列(或多列),进行分组,值相等的为一组。
1)细化集函数(count,sum,avg,max,min)的作用对象:
例:求各个课程号及相应的选课人数:
sc表如下图所示
在这里插入图片描述
1>未对查询结果分组,集函数将作用于整个查询结果.
select cno,count(sno) from sc
在这里插入图片描述
对整个表进行count

2>对查询结果分组后,集函数将分别作用于每个组。
select cno,count(sno) from sc group by cno;
在这里插入图片描述
对分组的表进行count

2)多个列属性进行分组举例:
select cno,grade,count(cno) from sc group by cno,grade
在这里插入图片描述
cno为2且成绩为66的,有3个
3)使用HAVING短语筛选最终输出结果
只有满足HAVING短语指定条件的组才输出。
HAVING短语与WHERE子句的区别:作用对象不同。
1>WHERE子句作用于基表或视图,从中选择满足条件的元组。
2>HAVING短语作用于组,从中选择满足条件的组。
例1:
查询选修了3门以上课程的学生学号:
select sno from sc group by sno having count(cno)>3
在这里插入图片描述
例2:
查询选修了3门以上课程,且所有课程成绩都高于60分的学生学号及课程数:
select sno , count(cno) from sc
where grade > 60
group by sno having count(cno) > 3
在这里插入图片描述
二.SQL语句中order by和group by一起使用的注意事项
1.order by 的列,必须是出现在group by 子句里的列
2.order by 要 放在 group by的后面

  • 4
    点赞
  • 0
    评论
  • 14
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值