一、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

group by和order by的用法和区别相关推荐

  1. 浅谈group by和order by的用法和区别

    前一段时间的面试,问道这个问题,不太清楚了,感觉有必要来总结一下.话不多说,直接开始吧! 一.order by的用法 使用order by,一般是用来,依照查询结果的某一列(或多列)属性,进行排序(升 ...

  2. where、having、group by、order by、limit的区别和使用顺序

    where.having.group by.order by.limit的区别和使用顺序_姚文斌的博客-CSDN博客

  3. 查询语句中select from where group by having order by的执行顺序

    查询语句中select from where group by having order by的执行顺序 1.查询中用到的关键词主要包含六个,并且他们的顺序依次为  select--from--whe ...

  4. 当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序

    当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序  使用count(列名)当某列出现null值的时候,count(*)仍然会计算,但是co ...

  5. select的5中子句where,group by, havaing, order by, limit的使用顺序及实例

    -- 语法: SELECT select_list FROM table_name [ WHERE search_condition ] [ GROUP BY group_by_expression ...

  6. mysql “group by ”与order by的研究--分类中最新的内容

    这两天让一个数据查询难了.主要是对group by 理解的不够深入.才出现这样的情况 这种需求,我想很多人都遇到过.下面是我模拟我的内容表 我现在需要取出每个分类中最新的内容 select * fro ...

  7. mysql group by日期_深入研究mysql中group by与order by取分类最新时间内容

    鉴于项目的需要,就从网上找到该文章,文章分析得很详细也很易懂,在android里,(不知道是不是现在水平的限制,总之我还没找到在用 ContentProvider时可以使用子查询),主要方法是用SQL ...

  8. SQL group by 和 order by 、where、having

    表如下: 基本group by: 排序: order by和group by一起使用: 1 order by 的列,必须是出现在group by 子句里的列 2 order by 要 放在 group ...

  9. SQL语句where,Group By,having order by 的详细使用方法

    为什么80%的码农都做不了架构师?>>>    1. Group By 语句简介: Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Grou ...

最新文章

  1. cmd 文本替换_将CMD信息保存为文件
  2. HPU第三次积分赛-D:Longest Increasing Subsequence(DP)
  3. 零基础学习大数据人工智能,学习路线篇!
  4. startuml如何画流程图_因为流程图没画好SCI被拒稿!看完师姐的攻略后我被吊打了!...
  5. python正则表达式--分组、后向引用、前(后)向断言
  6. 奥托尼克斯接近开关型号_12月23日NBA | 骑士VS老鹰、尼克斯VS奇才、开拓者VS鹈鹕...
  7. 静态编译qemu_使用QEMU chroot进行固件本地调试
  8. KEIL编译生成bin文件,并输出内存使用情况
  9. web访问linux创建目录权限设置,centos7下新建一个用户并限制访问目录
  10. Maven中的dependencyManagement
  11. 运用SPSS进行PCA主成分分析(因子分析)
  12. OSPF区域类型及详解
  13. JavaScript高级学习之彩色小球球
  14. 医学图像开源数据集汇总
  15. 风袖第一阶段小程序wx.request封装
  16. 广东高考成绩及录取分数线揭晓
  17. VBA 字典数组运用查询系统
  18. java使用模板导出Excel表格
  19. IM即时通讯软件开发之扫码登录功能
  20. 04--简单菜单使用

热门文章

  1. QQ开放平台QQ登录PHP代码
  2. android studio 把libs包打包到apk中,设置应用以32bit去读取.so文件
  3. 关于生僻字乱码的问题
  4. 增设区域分销商:APC渠道变革拒绝“扁平化”
  5. 我和 flow.ci 的第一次亲密接触
  6. 东昂科技冲刺深交所:年营收2.6亿 庄俊辉控制69%股权
  7. window版ELK搭建
  8. 【小飞象出海】Facebook海外企业广告账户如何申请基本流程
  9. 买手妈妈如何赚钱?赚钱的模式具体是什么?
  10. 称“开启千元机快充时代” 魅蓝5s将于15日发布