Where/Order by/Ggroup by/Having使用的注意事项
1、Where、Order by、Group by 、having
Where作用对象是:基本表或视图,从中选出符合条件的元素。
Order by 作用对象是:基本表或视图,就是排序方式,分为升序(ASC)和降序(DESC),排序默认为升序
Group by 作用对象是:基本表或视图,把对象进行分组(一个或多个字段)。
Having 作用对象是 组,从中选择符合条件的组
注意事项:
- Group by 与having连用选出符合条件的分组;
- Group by 必须与聚合函数(sum,avg,min,max,cout)一起使用才有意义,使用时至少需要一个分组标志;
- Group by 与Where 一起使用时:
【3.1】一起使用时,where在前group by 在后;
【3.2】注意having和where的用法区别;
(3.2.1)having只能用在group by 之后,对分组的结果进行筛选{即使用having的前提条件是分组};
(3.2.2)where肯定再group by之前;
(3.2.3)where后的条件表达式里不允使用聚合函数,而having可以;
【3.3】当一个查询语句同事出现了where,group by,having,order by的时候,执行顺序和编写顺序是:
<Where--group by---having--order by>
(1) 执行where xx对全表数据做筛选,返回第1个结果集。
(2) 针对第1个结果集使用group by分组,返回第2个结果集。
(3) 针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集
(4) 针对第3个结集执行having xx进行筛选,返回第4个结果集。
(5) 针对第4个结果集排序。
Where/Order by/Ggroup by/Having使用的注意事项的更多相关文章
- 开源项目Druid的提取SQL模板
		在数据库审计中,常常用到SQL模板,这样提取一次模板,下一次就不用对相同的模板的SQL进行相关操作.对此Druid提供相应的工具类进行SQL模板提取: package com.dbappsecurit ... 
- java 零基础搭建dubbo运行环境
		一:简介 以前做项目时,分布式环境都是其它同事在搭建,自己也没参与分布式环境搭建,只负责开发,由于近段时间工作重心转到android,java后台有一段时间没有接触了,刚好这几天有空,决定自己动 ... 
- 数据库行转列、列转行,pivot透视多列
		这就是典型的行转列问题. 首先说下最简单的思路 用union all select year,sum(m1) m1,sum(m2) m2,sum(m3) m3,sum(m4) m4 from ( s ... 
- Oracle SEQUENCE 具体说明
		ORACLE SEQUENCE ORACLE没有自增数据类型,如需生成业务无关的主键列或惟一约束列,能够用sequence序列实现. CREATE SEQUENCE语句及參数介绍: 创建序 ... 
- RocketMQ 笔记-转
		Astrotrain概述 Astrotrain是基于阿里巴巴开源项目RocketMQ进行封装的分布式消息中间件系统,提供集群环境下的消息生产和消费功能. RocketMQ介绍 RocketMQ的物理部 ... 
- TinkerPop中的遍历:图的遍历中谓词、栅栏、范围和Lambda的说明
		关于谓词的注意事项 P是Function<Object,Boolean>形式的谓词.也就是说,给定一些对象,返回true或false.所提供的谓词在下表中概述,并用于各种步骤,例如has( ... 
- spring boot:用shardingjdbc实现多数据源的分库分表(shardingsphere 4.1.1/spring boot 2.3.1)
		一,shardingjdbc的用途 1,官方站介绍: Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈, 它由 JDBC.Proxy 和 Sidecar( ... 
- 在UPDATE中更新TOP条数据以及UPDATE更新中使用ORDER BY
		正常查询语句中TOP的运用: SELECT TOP 1000 * FROM MP_MemberGrade 随意更新一张表中满足条件的前N条数据: UPDATE TOP (1) MP_Member ... 
- BZOJ 1391: [Ceoi2008]order [最小割]
		1391: [Ceoi2008]order Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1509 Solved: 460[Submit][Statu ... 
随机推荐
- Electron 菜单切换主题与css替换 ts编写
			////目标css<link rel="stylesheet" id="theme_css" href="路径"> ////ts ... 
- SpringBoot 整合NoSql
			通用配置 maven依赖 添加Spring-Web和Spring-Security依赖,使用Spring-Security是因为使用SpringBoot的Redis依赖时,必须添加Spring-Sec ... 
- PHP 核心特性 - 命名空间
			提出 在命名空间提出之前,不同的组件很容易碰到命名的冲突,例如 Request .Response 等常见的命名.PHP 在 5.3 后提出了命名空间用来解决组件之间的命名冲突问题,主要参考了文件系统 ... 
- PHP Swoole-Demo TCP服务端简单实现
			tcp 服务端简单demo与client . <?php /** * author : rookiejin <mrjnamei@gmail.com> * createTime : 2 ... 
- [LC]876题 Middle of the Linked List (链表的中间结点)(链表)
			①中文题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式 ... 
- 心里有点B树
			在说B树之前最好先看看2-3树, 2-3树是B树的一种特例, 什么B树, B树就是2-3树, 2-3-4 树 , 2-3-4-5... 树的统称, 而B+树又是B树的一种变形 性质: 什么是二节点, ... 
- lqb 入门训练 Fibonacci数列  (循环 PS:提柜要栈溢出)
			入门训练 Fibonacci数列 时间限制:1.0s 内存限制:256.0MB 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时, ... 
- nyoj  477-A+B Problem III (fabs() <= 0.00001)
			477-A+B Problem III 内存限制:64MB 时间限制:1000ms 特判: No 通过数:18 提交数:34 难度:1 题目描述: 求A+B是否与C相等. 输入描述: T组测试数据. ... 
- 初识JVM内存模型
			计算机内存模型 在程序运行时,CPU通过访问主存获取数据,但随着CPU的快速发展,CPU访问速度越来越高,硬件无法满足CPU的条件下,大多内存加入了高速缓存机制,不同CPU都有对应的多级(一般为三)缓 ... 
- ubuntu 16.04上源码编译glog和gflags 编写glog-config.cmake和gflags-config.cmake | compile glog and glags on ubuntu 16.04
			本文首发于个人博客https://kezunlin.me/post/977f5125/,欢迎阅读! compile glog and glags on ubuntu 16.04 Series comp ... 
