必威体育Betway必威体育官网
当前位置:首页 > IT技术

group by和order by的用法和区别

时间:2019-05-31 23:44:05来源:IT技术作者:seo实验室小编阅读:60次「手机版」
 

orderby

一、order by的用法

使用order by,一般是用来,依照查询结果的某一列(或多列)属性,进行排序(升序:ASC;降序:DESC;默认为升序)。

当排序列含空值时:

ASC:排序列为空值的元组最后显示。

DESC:排序列为空值的元组最先显示。

为了好记忆,我的理解是,可以把null值看做无穷大,因为不知道具体为多少。然后去考虑排序,asc升序null肯定在最后,而desc降序,null肯定在最前面。(我的想法,轻喷。。。微笑

1》单一列属性排序

举例1:默认排序:

select * from s

select * from s order by sno desc

按照sno降序:

2》多个列属性排序

选择多个列属性进行排序,然后排序的顺序是,从左到右,依次排序。

如果前面列属性有些是一样的话,再按后面的列属性排序。(前提一定要满足前面的属性排序,因为在前面的优先级高)。

举例2:


 
  1. select * from s

  2. order by sname desc, sage desc

首先按照sname降序排序,然后出现了xx一样的,在按照sage降序排序。(默认sage是升序)。

如果最开始使用sno排序,


 
  1. select * from s

  2. order by sno desc, sage asc

必须先满足前面列属性的排序(sno在前优先级高)。才会去考虑后续列属性的排序。

二、group by的用法

group by按照查询结果集中的某一列(或多列),进行分组,值相等的为一组。

1》细化集函数(count,sum,avg,max,min)的作用对象:

未对查询结果分组,集函数将作用于整个查询结果。

对查询结果分组后,集函数将分别作用于每个组。

例子3:

求各个课程号及相应的选课人数:

SELECT cno,count(sno) from sc

对整个表进行count。

SELECT cno,count(sno) from sc group by cno

对分组的表进行count

sc表内容如下:

2》GROUP BY子句的作用对象是查询的中间结果表

分组方法:按指定的一列或多列值分组,值相等的为一组。

使用GROUP BY子句后,SELECT子句的列名列表中只能出现分组属性(比如:sno)和集函数(比如:count())。

select sno,count(cno) from sc group by sno

3》多个列属性进行分组举例:

select cno,grade,count(cno) from sc group by cno,grade

cno为1且成绩为66的,有3个

4》使用HAVING短语筛选最终输出结果

只有满足HAVING短语指定条件的组才输出。

HAVING短语与WHERE子句的区别:作用对象不同。

1》WHERE子句作用于基表或视图,从中选择满足条件的元组

2》HAVING短语作用于,从中选择满足条件的

举例:

查询选修了3门以上课程的学生学号:

select sno from sc group by sno having count(cno)>3

举例:

查询选修了3门以上课程,且所有课程成绩都高于60分的学生学号及课程数


 
  1. select sno , count(cno)

  2. from sc

  3. where grade > 60

  4. group by sno having count(cno) > 3

相关阅读

Android随笔3:多行RadioGroup

一、简介 在开发某APP时,遇到这么一个问题:要使用RadioGroup来实现单选框效果,但是item太多,要分成两行来显示。 一开始我心想,这不是

A101Group联合火星财经全球重磅首发《2019世界区块链

10月11日18:00,由A101Group、火星财经联合举办的《2019世界区块链女神地图》线上发布会圆满落幕,历时两小时。发布会上,A101Group创始

亿欧发布中国消费新势力品牌20强 你我集团(YOUME GROUP

2019年9月20日,亿欧网主办的“920潮流邂逅科技零售创新峰会”在北京举办,你我集团(YOUME GROUP)荣获「 2019 中国 消费新

MySQL中order by 和 group by 一起使用

select * from (select * from crm_followup order by CreateTime desc) a GROUP BY a.CDID

CSS深度挖掘 - 「Border-radius」的八个值

知识往往随时间淡忘,沉心在开发中时间长了,发现好些知识已经又模糊了,一些很好用的属性,其本身就有,却忘了,然后绕个大圈子自己实现了

分享到:

栏目导航

推荐阅读

热门阅读