首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

目录 1 编写顺序 1 编写顺序 当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序编写顺序是: 1.执行where xx对全表数据做筛选,返回第1...2.针对第1个结果集使用group by分组,返回第2个结果集。 3.针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集。...Group By Having, Where ,Order by这些关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by。...-- 3、查询平均成绩大于等于60分的同学的学生编号学生姓名和平均成绩 select b.s_id,b.s_name,ROUND(AVG(a.s_score),2) as avg_score from...需要用到信息表 成绩表 首先查出有成绩的学生,也就是两个表联查 select b.s_id,b.s_name,ROUND(AVG(a.s_score),2) as avg_score from student

78520
您找到你想要的搜索结果了吗?
是的
没有找到

SQL笔记

组合条件布尔运算符 AND/OR IN/BETWEEN 相对应 NOT IN / NOT BETWEEN JOIN子句 join允许你从两个表或者更多的表连接进行数据检索,而只需要用一个SELECT语句...,组合他们的输出,使用UNION关键字。...SQL语句的执行顺序 FROM - WHERE - GROUP BY - HAVING - SELECT - DISTINCT - UNION - ORDER BY SELECT A.x + A.y AS...SELECT语句规则: - 你仅能够使用那些能通过表引用而得来的字段; - 如果你有 GROUP BY 语句,你只能够使用 GROUP BY 语句后面的字段或者聚合函数; - 当你的语句中没有...GROUP BY 的时候,可以使用开窗函数代替聚合函数; - 当你的语句中没有 GROUP BY 的时候,你不能同时使用聚合函数其它函数; - 有一些方法可以将普通函数封装在聚合函数中; 集合运算

68120

SQL命令大全,每条命令均有示例,小白看了也可成神!

<=等一起使用 SELECT name FROM customers WHERE name = ‘Bob’; AND AND 在单个查询中组合两个或多个条件,必须满足所有条件才能返回结果。...SELECT MAX(age) FROM customers; GROUP BY GROUP BY 语句将具有相同值的行分组为汇总行,该语句通常与聚合函数一起使用。...SELECT name FROM customers ORDER BY age DESC; OFFSET OFFSET 语句ORDER BY 一起使用,并指定在开始从查询中返回行之前要跳过的行数。...TRUNCATE TABLE customers; UNION UNION 使用两个或多个 SELECT 语句组合多个结果集并消除重复行。...SELECT name FROM customers UNION SELECT name FROM orders; UNION ALL UNION ALL 使用两个或多个 SELECT 语句组合多个结果集并保留重复行

3.9K62

Oracle 高级查询-【联合语句】【联合查询】【层次查询】

WHERE expressions order by column_name asc | desc -- asc 升序 desc 降序 group by 子句 group by 子句用于对记录集合进行分组...,一旦使用分组之后,select 语句的真实操作目标为各个分组数据,每次循环处理的也是各个分组,而不是单条记录、 SELECT column_name,... | * FROM table_name...,但是针对group by 子句形成的分组之后的结果集,where 子句将无能为力,为了过滤 group by 子句所生成的结果集,可以使用having 子句、 SELECT column_name...子查询可以使用子查询的位置 : where,select,having,from 不可以使用子查询的位置:group by 一般不在子查询中使用排序 联合语句 联合语句是指两个或多个select...笛卡尔积 两个集合XY的笛卡尓积(Cartesian product),又称直积,表示为X × Y 等值联接 等值联接将多个数据源进行查询,连接条件是等号 SELECT * FROM table_name

2.2K20

【MySQL 系列】MySQL 语句篇_DQL 语句

BY group_columns_list [HAVING group_clause]] # group_columns_list 分组字段列表 ,group_clause 分组条件 [ORDER...2.2、DQL 子句:JOIN 在 MySQL 中,JOIN 语句用于将数据库中的两个表或者多个表组合起来。...2.2.1、关于示例 在 JOIN 相关的以下示例中,我们将使用 student student_score 两个表来完成,下面是两张表的结构创建和数据插入语句。...AND , OR NOT 逻辑运算符一个或多个表达式的组合;④ 除了用在 SELECT 语句之外, WHERE 子句还可以用在 UPDATE DELETE 语句中,用来指定要更新或删除的行。...这些正是 GROUP BY 子句发挥作用的地方。 GROUP BY 子句是 SELECT 语句的可选子句。 GROUP BY 子句语法如下: SELECT column1[, column2,...

12210

SQL知识点总结

(1)group by语句select后所选择的字段有一定的限制,即select后没有使用聚合函数的字段必须包含在group by 语句后面的结果集中。...(6)GROUP BY中的WHERE HAVING 语句 A:WHERE 搜索条件在进行分组操作之前应用,不能使用聚合函数;而 HAVING 搜索条件在进行分组操作之后应用,可以使用聚合函数。...二、重点写多表连接查询 若一个查询涉及到两个两个以上的表,则称之为多表连接查询。可从多个表中提取数据并组合成新的纪录。 连接查询主要包括内连接、外连接交叉连接等。...4、合并多个结果集 将两个两个以上的查询结果集合合并为一个结果集,使用UNION,其格式为: SELECT  语句1 UNION[ALL] SELECT  语句2 UNION[ALL...使用UNION的两个基本规则是: (1)所有查询语句中列的个数列的顺序必须相同; (2)所有查询语句中对应列的数据类型必须兼容。

2.2K10

Hive SQL语句的正确执行顺序

关于 sql 语句的执行顺序网上有很多资料,但是大多都没进行验证,并且很多都有点小错误,尤其是对于 select group by 执行的先后顺序,有说 select 先执行,有说 group by...; 执行输出列的操作,注意: select 后面只有两个字段(order_amount,userkey),此时 Hive 是否只输出这两个字段呢,当然不是,因为 group by 的是 idno,如果只输出...select两个字段,后面 group by 将没有办法对 idno 进行分组,所以此时输出的字段有三个:idno,order_amount,userkey; 执行 map 端的 group by...); Reduce 阶段: 执行 reduce 端的 group by,此时的分组方式采用的是合并分组,对 map 端发来的数据按照 idno 进行分组合并,同时进行聚合操作 sum(order_amount...) count(userkey); 执行 select,此时输出的就只有 select两个字段:sum(order_amount) as sum_amount,count(userkey) as

6.6K52

Leetcode-sql-one

文中会介绍题目尽可能多的解答方案 组合两个表:通过join进行联结 第二高的薪水:ifnulllimit的用法以及建立临时表 超过经理收入的员工:一个表的自连接实现 从不订购的客户:两个表的连接 关于...175-组合两个表 题目 有PersonAddress两个表,编写SQL语句,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息: FirstName, LastName...distinct Salary -- ()里面的select语句是建立临时表,解决只有一条记录的问题 from Employee order by Salary desc...答案 子句顺序:where>group by>having>order by -- 自己的答案 select distinct(Email) -- 去重 from Person a, Person...= b.id; -- 自己的类似,将where条件换成了join连接 使用临时表解决 select Email from ( select Email, count(Email) as num

38520

SQL命令 UNION

SQL命令 UNION 组合两个或多个SELECT语句。...描述 UNION将两个或多个查询组合为一个查询,该查询将数据检索到结果中。 由UNION组合的查询可以是由单个SELECT语句组成的简单查询,也可以是复合查询。...TOPORDER BY子句 UNION语句可以以ORDER BY子句结束,该子句对结果进行排序。 这个ORDER BY适用于整个语句; 它必须是最外层查询的一部分,而不是子查询。...下面的例子展示了ORDER BY的使用:两个SELECT语句选择数据,数据由UNION组合,然后ORDER BY对结果进行排序: SELECT Name,Home_Zip FROM Sample.Person...这个ORDER BY用于确定TOP子句选择了哪些行。 下面的示例展示了ORDER BY的使用:两个SELECT语句使用ORDER BY对它们的行进行排序,这决定了哪些行被选为顶部行。

1.5K20

介绍一种非常好用汇总数据的方式GROUPING SETS

结果集中每一行返回GROUP BY 子句中表达式的唯一值或者组合,并且聚合函数,像COUNT或者SUM等可以对查询中的任何行进行聚合。...2.使用 GROUPING SETS操作符,结合GROUP BY一起在一个语句中实现。 本文中,我会展示如何使用GROUPING SETS来实现这一目的。...显然GROUP BY 后面的列越多其越详细,结果一般也越多(除非有传递依赖键)。 如果你仔细观察两个查询,你会发现他们都是根据个子的分组表达式进行分组汇总的。前面的是按照年,后面的是按照年月。...蓝色框内为按照年月的分组汇总。 如图所示两个结果集被合并在一起了。注意。此时NULL出现在里面,使用NULL作为假列来标识order year分组的结果。因为按年分组没有这个列。...例如假如一个分组包含两个列,假设列AB,两个列都需要包含在括号内:(column A, column B)。如果没有括号,这个子句将会被定义为独立的分组,结果就不同了。 上面语句的结果如下: ?

3.6K110

SQL命令 SELECT(一)

对查询结果使用ORDER BY子句。 子查询(例如UNION语句)中的ORDER BY子句必须与TOP子句配对。 如果没有指定ORDER BY子句,则返回记录的顺序是不可预测的。...子查询也可以在UPDATE或DELETE语句中指定。 子查询必须用括号括起来。 UNION语句允许将两个或多个SELECT语句组合成一个查询。...例如,下面的查询返回一行,其中Home_StateAge值的每个唯一组合都有Home_StateAge值: SELECT DISTINCT Home_State,Age FROM Sample.Person...例如,下面的查询返回一行,其中包含Home_StateAge值的每个唯一组合的NameAge值: SELECT DISTINCT BY (Home_State,Age) Name,Age FROM...列出一个以上的项将检索两个组合中不同的所有行。 DISTINCT认为NULL是唯一的值。 TOP子句 TOP关键字子句指定SELECT语句只返回指定的行数。

5.3K10

深入理解 SQL UNION 运算符及其应用场景

SQL UNION运算符 SQL UNION运算符用于组合两个或多个SELECT语句的结果集。 每个UNION中的SELECT语句必须具有相同数量的列。 列的数据类型也必须相似。...SELECT City FROM Suppliers ORDER BY City; 带有WHERE的SQL UNION 以下SQL语句从“Customers”“Suppliers”表中返回德国的城市(...WHERE Country='Germany' ORDER BY City; 带有WHERE的SQL UNION ALL 以下SQL语句从“Customers”“Suppliers”表中返回德国的城市...FROM Suppliers WHERE Country='Germany' ORDER BY City; 另一个UNION示例 以下SQL语句列出了所有客户供应商: SELECT 'Customer...SQL GROUP BY语句 GROUP BY语句将具有相同值的行分组为摘要行,通常与聚合函数一起使用,以根据一个或多个列对结果集进行分组。

31610

小胖问我:group by 怎么优化?

3.2 执行流程 根据 explain 分析,我们知道执行过程中肯定有创建临时表排序两个步骤,下面来分析一下: 创建内存临时表,表里面有两个字段:city num; 全表扫描 sale_order...OS:mmp,又改 根据需求很快写出 sql 语句select city, count(*) as num from sale_order group by city having num > 100...sql 语句select city, count(*) as num from sale_order where order_nunm > 2 group by city having num >...,如果有大于、小于的情况还是避免不了排序使用临时表。...by 的基本进阶用法,还用 explain 分析了不同 group by 的执行流程;从上面的分析中知道了 group by 的性能瓶颈是使用临时表排序,从这两个方面提出了分组字段加索引、order

57141

关于sqlMySQL的语句执行顺序(必看)「建议收藏」

今天遇到一个问题就是mysql中insert into update以及delete语句中能使用as别名吗?...一、sql执行顺序 from on join where group by(开始使用select中的别名,后面的语句中都可以使用) avg,sum…....第四步:如果 from 子句中的表数目多余两个表,那么就将vt3第三个表连接从而计算笛卡尔乘积,生成虚拟表,该过程就是一个重复1-3的步骤,最终得到一个新的虚拟表 vt3。...第六步:group by 子句将中的唯一的值组合成为一组,得到虚拟表vt5。如果应用了group by,那么后面的所有步骤都只能得到的vt5的列或者是聚合函数(count、sum、avg等)。...>WHERE子句->GROUP BY子句->HAVING子句->SELECT子句->ORDER BY子句->LIMIT子句->最终结果 每个子句执行后都会产生一个中间结果,供接下来的子句使用,如果不存在某个子句

1.3K10

SQL优化一(SQL使用技巧)

preceding and unbounded following  --整个组 两个order by的执行时机 分析函数(以及与其配合的开窗函数over())是在整个sql查询结束后(sql语句中的...over()分析时要求的排序,即sql语句中的order by子句里的内容开窗函数over()中的order by子句里的内容一样,那么sql语句中的排序将先执行,分析函数在分析时就不必再排序;    ...b) 两者不一致:如果sql语句中的order by不满足与分析函数配合的开窗函数over()分析时要求的排序,即sql语句中的order by子句里的内容开窗函数over()中的order by子句里的内容不一样...CUBE,也是GROUP BY子句的一种扩展,可以返回每一个列组合的小计记录,同时在末尾加上总计记录。...求每一个列的组合的小计记录:select deptno,sum(sal) from emp group by cube(deptno,sal) ?

2.5K40

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券