SQL基础学习总结:5(HAVING子句的使用ORDER BY排序子句的使用)
为聚合结果指定条件
HAVING子句
HAVING子句可以让我们筛选分组之后的各种数据,其语法结构如下:
SELECT <列名1>,<列名2>,<列名3>
FROM <表名>
GROUP BY <列名1>,<列名2>,<列名3>
HAVING <分组结果对应的条件>
例:
使用HAVING子句前:
使用HAVING子句后:
例:
HAVING子句的构成要素
HAVING子句中能够使用的3种要素,如下:
- 常数
- 聚合函数
- GROUP BY子句中指定的列名(即聚合键)
例:HAVING子句的错误范例
product_name列并不包含在GROUP BY子句中,因此不允许写在HAVING子句中,可以理解为GROUP BY子句汇总后得到的表中并不存在product_name这一列。
例:正确示范
对查询结果进行排序
ORDER BY子句
ORDER BY子句可以用来指定排列的顺序,其语法结构如下:
SELECT <列名1>,<列名2>,<列名3>
FROM <表名>
ORDER BY <排序基准点1>,<排序基准点2>,<排序基准点3>,...;
ORDER BY子句中书写的列名称为排序键。
例:
注意:如果有多个排序键的话,优先按照第一个排序键排序,如果该列存在相同值的话,再接着参考右侧的键,如下图所示:
子句书写顺序:
1.SELECT子句→2.FROM子句→3.WHERE子句→4.GROUP BY子句→5.HAVING子句→6.ORDER BY子句
ORDER BY子句子句通常写在SELECT语句的末尾。
指定升序或降序
想要降序排列时,我们可以在列名后面加上DESC关键字。
例:
注:其实使用升序排序时,正式的书写方式应该是使用ASC关键字,但是省略该关键字时会默认使用升序排序。
由于ASC和DESC这两个关键字是以列为单位指定的,因此可以同时指定一个列为升序,指定其他列为降序,例:
NULL的顺序
默认情况下,MySQL将null算作最小值。
例:
在排序键中使用别名
在讲别名的使用之前我们先梳理一下MySQL的子句语法顺序和执行顺序
MySQL中子句的语法顺序:
SELECT[DISTINCT] →FROM→JOIN→ON→WHERE→GROUP BY→HAVING→UNION→ORDER BY→LIMIT
MySQL中子句的执行顺序,即在执行时SQL按照下面的顺序进行执行:
FROM→JOIN→ON→WHERE→GROUP BY(开始使用SELECT中的别名,后面的语句中都可以使用别名)→AVG,SUM,…→HAVING→SELECT→DISTINCT→ORDER BY
由此我们可以在OEDER BY子句中使用别名。
ORDER BY子句中可以使用的列
ORDER BY子句中也可以使用存在于表中、但并不包含在SELECT子句中的列,如下图:
除此以外,还可以使用聚合函数,如下图:
不要使用列编号
列编号是指SELECT子句中的列按照从左到右的顺序进行排列时所对应的编号(1,2,3…)。
例:
以上两个例子的执行结果是一样的,也就是说我们可以使用列编号来执行ORDER BY语句,但是使用列编号可能会造成一些问题。
不要使用列编号理由如下:
- 代码阅读起来比较困难;
- 该功能将来会被删除(SQL-92中明确指出了该排序功能未来会被删除)。
相关文章:

【转】android错误 aapt.exe已停止工作的解决方法
http://www.jb51.net/article/57420.htm 在使用eclipse进行安卓java的编程的时候,有时候我们会遇到这样的问题:那就是无故弹出aapt.exe停止工作的提示,虽然程序不会崩溃,但是这个提示经常弹出很是烦人。今天,小编就来教…

2022-2028年中国FEP薄膜行业市场发展规模及市场分析预测报告
【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国FEP薄膜行业市场行业相关概述、中国FEP薄膜行业市场行业运行环境、分析了中国FEP薄膜行业市…

Android-----View绘制流程以及invalidate()等相关方法分析 .
引自:http://blog.csdn.net/qinjuning/article/details/7110211 前言: 本文是我读《Android内核剖析》第13章----View工作原理总结而成的,在此膜拜下作者 。同时真挚地向渴望了解 Android 框架层的网友,推荐这本书,希望…

实现ASP.NET MVC3 HtmlHelper 的 RadioButtonList 与CheckBoxList 扩展
ASP.NET MVC3也出来有一段时间了,对于没有RadioButtonList 与CheckBoxList的问题,网上也已经有很多解决方案了,可以for循环拼接出来,也可以引用ASP.NET MVC Toolkit,等等方法。其实本没有必要写出来的,不过…

Blender从头到尾创建一个低多边形场景学习教程
Low Poly Landscapes – Blender Bite Sized Course 流派:电子学习| MP4 |视频:h264,1280720 |音频:AAC,48.0 KHz 语言:英语中英文字幕(根据原英文字幕机译更准确)|大小解压后:3.9 GB |时长:6h 0m 从头到尾创造一个低聚…

SQL基础学习总结:6(INSERT语句的相关使用方法)
数据的插入(INSERT语句的使用方法) 我们之前在表的创建部分简单地介绍了一下INSERT语句的功能和使用方法,现在我们再详细讲一下它的用法。 INSERT语句的基本语法 其语法结构如下: INSERT INTO <表名> (列名1,列名2,列名3...)-> VALUES (数据…

JVM安全退出(如何优雅的关闭java服务)
为了保障应用重启过程中异步操作的执行,避免强制退出JVM可能产生的各种问题,我们可以采用关闭钩子、自定义信号的方式,主动的通知JVM退出,并在JVM关闭前,执行应用程序的一些扫尾工作,进一步保证应用程序可以安全的退出。

常用的CSS(收集)
1. 防padding属性改变盒子模型宽度 Css代码 * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } 当前css将固定盒子模型宽度总是以(显示)指定的宽度(width:300px)为准, 并不会受到padding而强制改变和模型宽…

2022-2028年中国EMI膜产业发展态势及市场发展策略报告
【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国EMI膜行业市场行业相关概述、中国EMI膜行业市场行业运行环境、分析了中国EMI膜行业市场行业…

JS报“Uncaught TypeError: undefined is not a function ”异常
最终的原因是:js引用的位置太靠后,导致使用js方法时,js库还没加载。报此异常的可能原因有: 1、函数名写错了; 2、没有引用js文件; 3、定义晚了转载于:https://www.cnblogs.com/finalstar/p/4254632.html

密码学摘要算法之MD5
摘要算法 摘要算法是一种能产生特殊输出格式的算法,这种算法的特点是:无论用户输入什么长度的原始数据,经过计算后输出的密文都是固定长度的,这种算法的原理是根据一定的运算规则对原数据进行某种形式的提取,这种提取就是摘要&…

Revit:从入门到精通学习教程
流派:电子学习| MP4 |视频:h264,1280720 |音频:AAC,48.0 KHz 语言:英语中英文字幕(根据原英文字幕机译更准确) |大小:8.07 GB |时长:12h 16m Revit:从开始到专业掌握Revit 你会学到什么 Revit的最新功能 在Revit中创建…

JDBC编程:1(使用JDBC连接数据库)
使用JDBC连接数据库 下载连接MySQL数据库的驱动 这个jar包可以在官网上对照着你的MySQL版本来下载,这里我下载的是最新的8.0.20版本, 这里是8.0.20版本的驱动包:mysql-connector-java-8.0.20.zip 因为CSDN的积分不能设置永久免费࿰…

VS2010 编译 QT4.8.7 x64
1 下载qt4.8.7源代码,解压到合适位置(如本文为d:\qt\4.8.7) 2 设置环境变量: set QMAKESPECwin32-msvc2010set QTDIRd:\qt\4.8.7 3 修改配置文件: 修改\mkspecs\win32-msvc2010\qmake.conf将QMAKE_CFLAGS_RELEASE的O2改为O1 或 安装补丁http…

2022-2028年中国EBA树脂(乙烯丙烯酸丁酯)产业竞争现状及发展前景规划报告
【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国EBA树脂(乙烯丙烯酸丁酯)行业市场行业相关概述、中国EBA树脂&#…

JAX_WS 2.2 规范的webservices客户端实现(Axis2,Cxf)
为了对接之前老版本的接口,折腾了好几个小时. 主要是目前我的程序采用的是axis2的jax_rpc方式发布webservices服务,用这种服务的客户端,去调用老版本的jax_ws 2.2的接口,会报Runtime空指针。 于是采用cxf,使用了cxf3.0.3(当前版本) 的wsdl2ja…

idea mybatis plugin插件,免费mybatis插件
idea的mybatis插件。一直想下一个,在大批量修改一些问题时候 mapper和.xml文件查看会方便许多。 直接在idea的插件market里看经常会卡住,直接去网站看。 于是去官网查查看,网站巨慢 https://plugins.jetbrains.com/ 曾经试过mybatis plugin的…

从头开始学习Unity着色器
MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz,2 Ch 语言:英语中英文字幕(根据原英文字幕机译更准确)|时长:56节课(4h 26m) |大小解压后:2.89 GB Unity Shaders和HLSL阴影语言的完整指南 你会学到: 编写Uni…

JDBC编程:2(数据库的基本操作)
数据库的基本操作 查询数据 在开始前先简单地介绍一下什么是静态SQL和动态SQL: 静态SQL,在编译阶段就可以确定数据库要做什么事情。在某种高级语言中,如果嵌入了SQL语句,而这个SQL语句的主体结构已经明确,例如在Jav…

[Asp.net 5] Options-配置文件(2)
很久之前写过一篇介绍Options的文章,2016年再打开发现很多变化。增加了新类,增加OptionMonitor相关的类。今天就对于这个现在所谓的新版本进行介绍。 老版本的传送门([Asp.net 5] Options-配置文件之后昂的配置)。 首先上一个图&a…

android-sdk-windows版本号下载
Android SDK 4.0.3 开发环境配置及执行 近期又装了一次最新版本号的ADK环境 眼下最新版是Android SDK 4.0.3 本文的插图和文本尽管是Android2.2的 步骤都是一样的,假设安装的过程中遇到什么问题,能够留言,我会尽快回复! 系统环境的…

vs code搭建Django环境
在网上找了很多博客,看了vs code的官方文档,最终拼凑起来,终于搭建起来了djangode开发虚拟环境(win10下) 一、新建项目文件夹 F:\Python\temp\django_demo(例子) 二、在项目文件夹创建虚拟pytho…

Marvelous Designer衣袖设计教程
大小解压后:2.96G 持续时间3h 28m 包含项目文件 1280X720 MP4 语言:英语中英文字幕(根据原英文字幕机译更准确) 标题:技能分享——卓越设计师大师班(袖子) 信息: 在我的课程中,精彩设计师大师班(袖子)。在本课程中&…

Mybatis入门:1(Mybatis框架的环境搭建)
Mybatis框架的环境搭建 一.创建maven工程并导入坐标 导入坐标: <dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.4</version></dependency><d…

html表单的创建和css的构成
产品参数 <h2>LIFAair LA500参数表</h2><table><tr><td>测试数目</td><td>单位</td><td>数据</td></tr><tr><td>颗粒物CADR</td><td>m<sup>3</sup>/h</td><t…

Gartner2014年魔力象限(商业智能和分析平台)
转载于:https://www.cnblogs.com/crsn/p/4271377.html

@SupperssWarnings注解
SupperssWarnings注解:压制、控制警告 SuppressWarnings(“rawtypes”) 是什么含义 SuppressWarnings压制警告,即去除警告 rawtypes是说传参时也要传递带泛型的参数 SuppressWarnings(“unchecked”) unchecked 执行了未检查的转换时的警告 SuppressWarn…

虚幻引擎C++编程游戏开发基础
流派:电子学习| MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz 语言:英语中英文字幕(根据原英文字幕机译更准确)|大小解压后:23.8 GB |时长:44h 59m 学习C编程和游戏开发基础和虚幻引擎 你会学到什么 通过简单的例子和插…

Mybatis入门:3(动态sql)
动态sql语句 if标签 基本使用 一.在ProductDao接口中创建一个查询方法findByType import com.domain.Product;import java.util.List;public interface ProductDao {/*** 根据类型来查找* param product* return*/Product findByType(Product product); }二.在映射配置文件…

javaweb学习总结(二十三)——jsp自定义标签开发入门
一、自定义标签的作用 自定义标签主要用于移除Jsp页面中的java代码。 二、自定义标签开发和使用 2.1、自定义标签开发步骤 1、编写一个实现Tag接口的Java类(标签处理器类) 1 package me.gacl.web.tag;2 3 import java.io.IOException;4 5 import javax.servlet.http.HttpServle…