sql语句orderby与groupby
⼀、order by与group by的⽤法
1)单⼀列排序
例1:默认排序:
select * from info
groupby分组
例2:按照no倒序排序
select * from info order by no desc;
2)多个列属性排序
选择多个列属性进⾏排序,然后排序的顺序是,从左到右,依次排序。
如果前⾯列属性有些是⼀样的话,再按后⾯的列属性排序。
例:
select * from info order by name desc, age desc
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⼀起使⽤的注意事项

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。