mysql分组和排序

虽然 GROUP BY 和 ORDER BY 经常完成相同的工作,但它们是非常不同的。下表汇总了它们之间的差别。

表中列出的第一项差别极为重要。我们经常发现用 GROUP BY 分组的数据确实是以分组顺序输出的。但情况并不总是这样,它并不是SQL规范所要求的。此外,用户也可能会要求以不同于分组的顺序排序。仅因为你以某种方式分组数据(获得特定的分组聚集值),并不表示你需要以相同的方式排序输出。应该提供明确的 ORDER BY 子句,即使其效果等同于 GROUP BY子句也是如此。

不要忘记 ORDER BY :一般在使用 GROUP BY 子句时,应该也给出 ORDER BY 子句。这是保证数据正确排序的唯一方法。千万不要仅依赖 GROUP BY 排序数据。为说明 GROUP BY 和 ORDER BY 的使用方法,请看一个例子。下面的

SELECT 语句类似于前面那些例子。它检索总计订单价格大于等于 50 的订单的订单号和总计订单价格:

输入:select order_num,sum(quantity*item_price) as ordertotal from orderitems group by order_num having sum(quantity*item_price) >= 50;

输出:

为按总计订单价格排序输出,需要添加 ORDER BY 子句,如下所示:

输入:select order_num,sum(quantity*item_price) as ordertotal from orderitems group by order_num having sum(quantity*item_price) >= 50 order by ordertotal;

输出:

分析:在这个例子中, GROUP BY 子句用来按订单号( order_num 列)分组数据,以便 SUM(*) 函数能够返回总计订单价格。 HAVING 子句过滤数据,使得只返回总计订单价格大于等于 50 的订单。最后,用 ORDERBY 子句排序输出。

SELECT子句顺序

下面回顾一下 SELECT 语句中子句的顺序。表13-2以在 SELECT 语句中使用时必须遵循的次序,列出迄今为止所学过的子句。

【相关推荐】mysql数据分组:创建分组

mysql数据分组:过滤分组

mysql的select的排序_mysql数据分组和排序及SELECT子句顺序相关推荐

  1. mysql降序后去重_Mysql 数据记录去重后按字段排序

    实现效果:去重-取最新的-排序 例子 : 按用户ID获取历史记录中某个人的记录,要求非重复的且每条只获取最新的,同时按添加时间倒序排列的 实现 :SELECT * FROM ( SELECT * FR ...

  2. mysql 指定数字排序_Mysql数据排序

    排序数据 普通字段排序 按照单一字段排序 按照多个字段排序 手动指定排序顺序 单个字段手动排序 多个字段手动排序 普通字段排序 按照单一字段排序 排序采用order by子句,order by后面跟上 ...

  3. mysql数据库select语句用法_mysql学习笔记之完整的select语句用法实例详解

    本文实例讲述了mysql学习笔记之完整的select语句用法.分享给大家供大家参考,具体如下: 本文内容: 完整语法 去重选项 字段别名 数据源 where group by having order ...

  4. mysql 目录武沛齐_MySQL数据表中的数据操作

    1.插入数据 insert into t_user (username,password,nickname) values ('foye','123','佛爷'); 以下方式必须写出所有的字段 ins ...

  5. mysql 字段名排序_mysql 字段属性 与 排序

    mysql中常见的数据类型:varchar(n).float.int(n).bigint(n).date.datetime.text 字段属性 默认值:DEFAULT '默认值' 非空:NOT NUL ...

  6. mysql非结构化查询_Mysql(2.3) 简单查询(SELECT)、子查询

    结构化查询语言(sql) SQL概念和规则 关键字:SQL语言保留的字符串(SELECT FORM) 语句:一条完整的SQL命令(SELECT * FROM dept) 子句:部分的SQL语句,通常由 ...

  7. mysql表只有frm文件_MYSQL数据文件--.frm文件(只有.frm文件时的表结构恢复)

    了解MYSQL的都知道,在MYSQL中建立任何一张数据表,在其数据目录对应的数据库目录下都有对应表的.frm文件,.frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等,.frm ...

  8. mysql 排序_MySql的几种排序方式

    MYYA 1.单列排序SELECT * FROM test1 ORDER BY date_time默认升序,降序后面接"DESC"即可.2.多列排序 SELECT * FROM t ...

  9. python分组后对日期排序_python对分组进行排序

    python 分组排序问题请教 按照城市进行分组,然后按照数值进行排序.多谢各位 def top(self,n=5): return self.sort('num',ascending=True)[: ...

最新文章

  1. Eclipse+SVN搭建开发环境
  2. elgamal java_ElGamal - 源码下载|系统编程|加密解密|源代码 - 源码中国
  3. 最新代理服务器列表 2008-09-2
  4. oracle 次月,Oracle日期查询:季度、月份、星期等时间信息
  5. 517. 超级洗衣机
  6. c语言死循环中输入字符,如下代码,如果输入字符,为什么会造成死循环?
  7. 20155302 2016-2017-2 《Java程序设计》第六周学习总结
  8. 源码分析Android Handler是如何实现线程间通信的
  9. html语言amp,第二amp;三讲HTML语言.ppt
  10. 怎样让你的Linux使用起来更像Windows
  11. 古董笔记本伪装成双核 1G内存 120G硬盘
  12. maven配置仓库及部署jar包
  13. HDU-4539 郑厂长系列故事——排兵布阵 状态压缩DP Or 最大团
  14. java事件溯源_领域事件与事件溯源 - 解道Jdon
  15. 【1月英语—罗塞塔之爱】
  16. IDEA中DEBUG时断点变成灰色
  17. python怎么打开qq_Python怎么登录QQ空间?
  18. Ubuntu 20.04 LTS 关闭 Swap 分区
  19. K序列--埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛
  20. js es6使用数组的every方法遇到的问题

热门文章

  1. 【Flink】Flink 报错 Initial AbstractPagedOutputView Segment may not be null
  2. 【linux】ssh 远程执行命令
  3. 【java】java中文件监控WatchService使用
  4. 【ambari】Ambari 环境安装
  5. 【Docker】ERROR: Could not find a version that satisfies the requirement pytest==5.0.1
  6. Spark读取Kafka因为序列化引起的问题:org.apache.spark.sql.streaming.StreamingQueryException: null
  7. 【Kafka】Failed to send data to Kafka: Failed to allocate memory within the configured max blocking
  8. 【Druid IO】Druid的imply方式安装
  9. Java中的switch分支语句
  10. 适配器模式在Mybatis中的妙用