首页 > 数据库 >SQL执行顺序及where、group by及having

SQL执行顺序及where、group by及having

时间:2024-10-30 15:59:49浏览次数:5  
标签:group 子句 project 分组 SQL where id

SQL执行顺序及where、group by及having

一、SQL的书写与执行顺序 SQL语句书写顺序select、form、where、group by、having、select、order by、limit  SQL语句执行顺序 from、where、group by、having、select、order by、limit 当然如果有join,肯定优先级是join,接下来是from之后的数据。    二、 WHERE、GROUP BY 和 HAVING 子句的正确顺序 1、举例说明:存在以下表格,我们用来做演示:其中(project_id,employee_id)是主键

 

理解应用 WHERE、GROUP BY 和 HAVING 子句的正确顺序对编写高效的查询代码会有所帮助:

2、若要取员工最多的项目,则结果是【1、2、5】:分析步骤,只要对项目分组,并取得每个分组中员工数,然后取这个最大员工数的项目编号。 select project_id from Project group by project_id having count(employee_id)>= ALL (     select count(employee_id)     from Project     group by project_id ) 执行结果是: {"headers": ["project_id"], "values": [[1], [5], [2]]}   
3、若要取特定项目中【2、4、5】员工最多的项目,则结果【2、5】:分析步骤,则需要先使用where取特定项目,然后对特定项目分组,并取得每个分组中员工数,然后取这个最大员工数的项目编号。
select project_id from Project where project_id in(2,4,5) group by project_id having count(employee_id)>= ALL (     select count(employee_id)     from Project     group by project_id ) 执行结果是:   {"headers": ["project_id"], "values": [[5], [2]]}   4、总结如下:
A、WHERE 子句用来筛选 FROM 子句中指定的操作所产生的行。 ☆☆☆☆☆   不可使用聚合函数。如果存在多条件,可以使用and、or等组合。
  
B、GROUP BY 子句用来分组 WHERE 子句的输出。 ☆☆☆☆   对where输出的语句执行分组,按照分组条件,若是多个条件,使用","分隔。

C、HAVING 子句用来从分组的结果中筛选行(针对对象:分组数据) 。☆☆☆☆  having可以使用聚合函数。   ☆☆☆☆☆对于可以在分组操作之前或之后应用的任何搜索条件,在 WHERE 子句中指定它们会更有效。这样可以减少必须分组的行数。 ☆☆☆☆☆应当在 HAVING 子句中指定的搜索条件只是那些必须在执行分组操作之后应用的搜索条件。 原文链接:https://www.cnblogs.com/jessicazhangblog/articles/15796654.html

标签:group,子句,project,分组,SQL,where,id
From: https://www.cnblogs.com/sunny3158/p/18515995

相关文章

  • MySQL双主配置
    1、配置的前置条件已知A服务器IP=192.168.0.11,B服务器IP=192.168.0.12建议使用相同版本的MySQL,若是小版本跨越一般是兼容的,如A的MySQL版本是5.7.1,B的MySQL版本是5.7.2;配置前需要保证两个数据库的数据一致,建议将A数据库同步到B数据库,以保证配置前A、B两台数据库的数据是一致的;......
  • Oracle、MySQL、ClickHouse的通用AES256加解密如何实现?
     Oracle、MySQL、ClickHouse的通用AES256加解密如何实现? 前段时间研究了加密算法aes,写了个文档,分享到博客上来。防。1  说明应XXX安全生产需求,对目标库目标表业务字段敏感信息进行加密密文存放,查询时通过解密得到明文进行数据使用,要求使用AES256。目前公司所使用主要......
  • MySQL数据库详细介绍:从入门到进阶
    MySQL是一个广泛使用的开源关系型数据库管理系统,被广泛应用于Web应用程序、企业级应用以及各种数据分析场景。本文将详细介绍MySQL数据库的基本概念、安装、配置、管理以及优化等方面的内容,帮助大家从入门到进阶了解MySQL。 一、MySQL安装可以通过以下链接下载MySQL安装包:......
  • MySQL 篇
    MySQL篇整体内容优化-如何定位慢查询如何定位慢查询问答环节优化-SQL语句执行的很慢,如何分析解决思路问答环节优化-索引概念及索引底层数据结构数据结构对比问答环节优化-聚簇索引、非聚簇索引、回表查询回表查询问答环节优化-覆盖索引、超大......
  • SQL Server 数据库给第三方用户开权限,限制可见内容。
    给外方公司开用户,让其访问本地有限资源。分两步,1新建服务器登录名,2设置数据库用户权限1,首先用管理员sa登录数据库,在服务器级别下“安全性\登录名”,新建登录名,比如叫tgzz。在“用户映射”界面,选择需要被外方访问的数据库,勾选。映射后,此数据库下会出现,与“登录名”同名的“用户名......
  • 时间序列分析:一种二次指数平滑法构建的纺织生产布料年产量线性预测模型 | 基于SQL语言
    目录0问题描述1 符号规定与基本假设 2模型的分析与建立 3模型的求解【基于SQL语言实现】3.1数据准备3.2问题分析步骤1:计算初始值。步骤2:计算一次平滑值。步骤3:计算二次平滑值 步骤4:计算直线趋势模型的系数 及步骤5:构建线性预测模型进行结果预测3.3结......
  • SQL注入语句笔记(很全,持续更新ing)
    SQL注入原理:1.参数用户可控化:前端传递给后端的参数是用户可以控制的2.参数带入数据库查询:传入的参数拼接到SQL语句,且带入数据库查询sql注入常用知识:1.information_schema:表示所有信息,包括库、表、列2.information_schema.tables:记录所有表名信息的表3.information_sch......
  • 基于Java+SpringBoot+Mysql实现的古诗词平台功能设计与实现九
    一、前言介绍:1.1项目摘要随着信息技术的迅猛发展和数字化时代的到来,传统文化与现代科技的融合已成为一种趋势。古诗词作为中华民族的文化瑰宝,具有深厚的历史底蕴和独特的艺术魅力。然而,在现代社会中,由于生活节奏的加快和信息获取方式的多样化,古诗词的传播和阅读面临着一......
  • 基于Java+SpringBoot+Mysql实现的古诗词平台功能设计与实现十
    一、前言介绍:1.1项目摘要随着信息技术的迅猛发展和数字化时代的到来,传统文化与现代科技的融合已成为一种趋势。古诗词作为中华民族的文化瑰宝,具有深厚的历史底蕴和独特的艺术魅力。然而,在现代社会中,由于生活节奏的加快和信息获取方式的多样化,古诗词的传播和阅读面临着一......
  • SQL,力扣题目1783,大满贯数量
    一、力扣链接1783.大满贯数量二、题目描述表:Players+----------------+---------+|ColumnName|Type|+----------------+---------+|player_id|int||player_name|varchar|+----------------+---------+player_id是这个表的主键(具有......