首页 > 编程知识 正文

结合order和group的sql语句,oracle创建表的sql语句

时间:2023-05-04 16:34:35 阅读:250837 作者:3361

一、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的后面

json文件有什么作用

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。