当前位置: 首页 > article >正文

SQL语句执行问题

执行顺序

select  [all|distinct]
<目标列的表达式1> AS [别名],
<目标列的表达式2> AS [别名]...
from <表名1或视图名1> [别名],<表名2或视图名2> [别名]...
[where <条件表达式>]
[group by <列名>]
[having <条件表达式>]
[order by <列名> [asc(从小到大排序)|desc(从大到小排序)]]
[limit <数字或列表>];

通过FROM子句中找到需要查询的表,

通过WHERE子句进行非聚合函数筛选判断:

通过GROUP BY子句完成分组操作;

通过聚合函数完成计算操作

通过HAVING子句完成组函数筛选判断,

通过SELECT子句选择显示的列或表达式及组函数,

通过ORDER BY子句进行排序操作。

通过LIMIT子句进行分页操作

别名的用法详解

select empno,ename,count(*) as sum 
from emp 
where sum>7  
group by sum 
having sum>7 
order by sum 
limit(5,2)修正后
select empno,ename,count(*) as sum 
from emp 
group by empno,ename 
having sum>7 
order by sum 
limit 5,2;

原语句存在的问题

  1. where** 子句中使用聚合函数**:WHERE 子句在分组操作(GROUP BY)之前执行,而 sum 是通过 GROUP BY 分组后使用 COUNT(*) 计算出来的聚合结果,所以不能在 WHERE 子句中引用聚合别名 sum
  2. limit** 语法错误**:LIMIT 子句的正确语法是 LIMIT offset, row_count 或者 LIMIT row_count,在 MySQL 中不需要括号,正确写法是 LIMIT 5, 2

别名用法详解

列别名

在 SQL 中,列别名用于为查询结果中的列指定一个新的名称。可以使用关键字 AS 来指定别名,也可以省略 AS。在你的语句里,count(*) as sum 就是给 COUNT(*) 函数的结果指定了一个别名 sum,之后在 HAVINGORDER BY 子句中就可以使用这个别名来引用聚合结果。

表别名

表别名用于为表指定一个简短的名称,在多表查询时可以简化表名的引用,提升 SQL 语句的可读性。不过在你给出的语句里没有使用表别名。

修正后的 SQL 语句及解释

-- 从 emp 表中查询数据
SELECT empno,ename,COUNT(*) AS sum
FROM emp
-- 按 empno 和 ename 进行分组
GROUP BY empno, ename
-- 筛选出分组后记录数大于 7 的组
HAVING sum > 7
-- 按照记录数(即 sum 列)进行升序排序
ORDER BY sum
-- 跳过前 5 条记录,取接下来的 2 条记录
LIMIT 5, 2;

代码解释

  1. SELECT** 子句**:从 emp 表中选择 empnoename 列,同时使用 COUNT(*) 函数统计每个分组中的记录数,并将结果命名为 sum
  2. FROM** 子句**:指定数据来源为 emp 表。
  3. GROUP BY** 子句**:按照 empnoename 进行分组,这样 COUNT(*) 函数会分别统计每个 empnoename 组合的记录数。
  4. HAVING** 子句**:在分组之后进行筛选,只保留 sum 大于 7 的分组。
  5. ORDER BY** 子句**:按照 sum 列进行升序排序。
  6. LIMIT** 子句**:跳过前 5 条记录,取接下来的 2 条记录。

相关文章:

SQL语句执行问题

执行顺序 select [all|distinct] <目标列的表达式1> AS [别名], <目标列的表达式2> AS [别名]... from <表名1或视图名1> [别名],<表名2或视图名2> [别名]... [where <条件表达式>] [group by <列名>] [having <条件表达式>] [ord…...

2025系统架构师---选择题知识点(押题)

1.《计算机信息系统安全保护等级划分准则》(GB 17859-1999)由低到高定义了五个不同级别的计算机系统安全保护能力。 第一级:用户自主保护级---通过隔离用户与数据实现访问控制,保护用户信息安全; 第二级:系统审计保护级---实施更细粒度的访问控制,通过审计和隔离资源确…...

flutter flutter run 运行项目卡在Running Gradle task ‘assembleDebug‘...

flutter run --verbose在运行flutter run 可以看到是卡在哪一步 最重要的就是自己查看日志&#xff0c;具体哪一步有问题flutter run --verbose使用这个&#xff0c;运行了项目会将错误信息放在控制台 可能原因 静态资源问题如果&#xff1a;图片、字体文件等没有在pubspec.yam…...

P5682 [CSP-J2019 江西] 次大值

P5682 [CSP-J2019 江西] 次大值 题目描述 Alice 有 n n n 个正整数&#xff0c;数字从 1 ∼ n 1 \sim n 1∼n 编号&#xff0c;分别为 a 1 , a 2 , … , a n a_1,a_2, \dots , a_n a1​,a2​,…,an​。 Bob 刚学习取模运算&#xff0c;于是便拿这 n n n 个数进行练习&…...

Elasticsearch 性能优化面试宝典

Elasticsearch 性能优化面试宝典 🚀 目录 设计调优 🏗️写入调优 ⚡查询调优 🔍综合设计 💎总结 📝设计调优 🏗️ 面试题1:索引设计优化 题目: 假设需要设计一个电商商品索引,日增数据量1TB,要求支持多维度查询(名称、分类、价格区间)。请说明索引设计的关…...

【论文阅读】人脸修复(face restoration ) 不同先验代表算法整理2

文章目录 一、前述二、不同的先验及代表性论文2.1 几何先验&#xff08;Geometric Prior&#xff09;2.2 生成式先验&#xff08;Generative Prior&#xff09;2.3 codebook先验&#xff08;Vector Quantized Codebook Prior&#xff09;2.4 扩散先验 &#xff08;Diffusion Pr…...

无监督学习在医疗AI领域的前沿:多模态整合、疾病亚型发现与异常检测

引言 人工智能技术在医疗领域的应用正经历着从辅助决策向深度赋能的转变。无监督学习作为人工智能的核心范式之一,因其无需大量标注数据、能够自动发现数据内在规律的特性,在医疗AI领域展现出独特优势。尤其在2025年,无监督学习技术在医疗AI应用中呈现出多模态整合、疾病亚…...

计算机操作系统概要

不谋万世者&#xff0c;不⾜谋⼀时。不谋全局者 &#xff0c;足谋⼀域 。 ——陈澹然《寤⾔》《迁都建藩议》 操作系统 一.对文件简单操作的常用基础指令 ls ls 选项 目录或⽂件名:罗列当前⽬录下的⽂件 -l&#xff1a;以长格式显示⽂件和⽬录的详细信息 -a 或 --all&…...

C语言进阶-数组和函数

C语言 一、数组 一维数组 通过数组&#xff0c;可以一次性的分配多个同类型的连续存储区 语法&#xff1a; 类型 数组名字[元素个数]; 例&#xff1a;int arr[6]; arr占用内存6个整型大小的连续存储空间 注意&#xff1a; 通过下标可以区分数组的每个…...

图片通过滑块小图切换大图放大镜效果显示(Vue3)

图片通过滑块小图切换大图放大镜效果显示 实现目标&#xff1a; 显示一组图片列表&#xff0c;鼠标进入小图记录当下小图下标&#xff0c;通过小图下标在数组中对应图片显示到大图位置&#xff1b; 鼠标进入大图位置时&#xff0c;带动滑块移动&#xff0c;并将放大两倍的大图…...

[SSL]1Panel添加阿里云DNS账户

1 创建一个子用户 将得到的key和secret贴到1panel的DNS账户配置中 添加权限 即可用DNS账号申请SSL证书...

C语言编程中的时间处理

最简单的time 在C语言编程中&#xff0c;处理时间最简单的函数就是time了。它的原型为&#xff1a; #include <time.h> time_t time(time_t *_Nullable tloc);返回自从EPOCH&#xff0c;即1970年1月1日的零点零时零分&#xff0c;到当前的秒数。 输入参数可以是NULL。…...

计算机网络 : 网络基础

计算机网络 &#xff1a; 网络基础 目录 计算机网络 &#xff1a; 网络基础引言1. 网络发展背景2. 初始协议2.1 初始协议2.2 协议分层2.2.1 软件分层的好处2.2.2 OSI七层模型2.2.3 TCP/IP五层&#xff08;四层&#xff09;模型 2.3 TCP/IP协议2.3.1TCP/IP协议与操作系统的关系&…...

C++跨平台开发:突破不同平台的技术密码

Windows 平台开发经验 开发环境搭建 在 Windows 平台进行 C 开发&#xff0c;最常用的集成开发环境&#xff08;IDE&#xff09;是 Visual Studio。你可以从Visual Studio 官网下载安装包&#xff0c;根据安装向导进行安装。安装时&#xff0c;在 “工作负载” 界面中&#xff…...

实现 STM32 PWM 输出:原理、配置与应用详解

实现 STM32 PWM 输出&#xff1a;原理、配置与应用详解 在嵌入式开发领域&#xff0c;STM32 微控制器凭借其强大的功能和丰富的外设资源&#xff0c;被广泛应用。PWM&#xff08;脉冲宽度调制&#xff09;作为 STM32 的重要功能之一&#xff0c;对于电机调速、LED 调光、信号合…...

Web 架构之负载均衡会话保持

文章目录 一、引言二、思维导图三、负载均衡会话保持的概念3.1 定义3.2 作用 四、负载均衡会话保持的实现方式4.1 基于 IP 地址原理代码示例&#xff08;以 Nginx 为例&#xff09;注释 4.2 基于 Cookie原理代码示例&#xff08;以 HAProxy 为例&#xff09;注释 4.3 基于 SSL …...

第一次做逆向

题目来源&#xff1a;ctf.show 1、下载附件&#xff0c;发现一个exe和一个txt文件 看看病毒加没加壳&#xff0c;发现没加那就直接放IDA 放到IDA找到main主函数&#xff0c;按F5反编译工具就把他还原成类似C语言的代码 然后我们看逻辑&#xff0c;将flag.txt文件的内容进行加…...

【Linux网络】传输层协议TCP

TCP协议 TCP全称为"传输控制协议(TransmissionControl Protocol"). 人如其名, 要对数据的传输进行一个详细的控制; TCP协议段格式 源、目的端口号&#xff1a;表示数据从哪个进程来&#xff0c;到哪个进程去。 32位序号、确认序号 4位TCP报头长度:表示该TCP头部有…...

AAAI-2025 | 中科院无人机导航新突破!FELA:基于细粒度对齐的无人机视觉对话导航

作者&#xff1a;Yifei Su, Dong An, Kehan Chen, Weichen Yu, Baiyang Ning, Yonggen Ling, Yan Huang, Liang Wang 单位&#xff1a;中国科学院大学人工智能学院&#xff0c;中科院自动化研究所模式识别与智能系统实验室&#xff0c;穆罕默德本扎耶德人工智能大学&#xff0…...

排序算法之基础排序:冒泡,选择,插入排序详解

排序算法之基础排序&#xff1a;冒泡、选择、插入排序详解 前言一、冒泡排序&#xff08;Bubble Sort&#xff09;1.1 算法原理1.2 代码实现&#xff08;Python&#xff09;1.3 性能分析 二、选择排序&#xff08;Selection Sort&#xff09;2.1 算法原理2.2 代码实现&#xff…...

Linux常用命令42——tar压缩和解压缩文件

在使用Linux或macOS日常开发中&#xff0c;熟悉一些基本的命令有助于提高工作效率&#xff0c;tar 是 Linux 和 Unix 系统中用于归档文件和目录的强大命令行工具。tar 名字来自 "tape archive"&#xff08;磁带归档&#xff09;&#xff0c;最初用于将文件打包到磁带…...

网络协议分析 实验七 FTP、HTTP、DHCP

文章目录 实验7.1 FTP协议练习二 使用浏览器登入FTP练习三 在窗口模式下&#xff0c;上传/下传数据文件实验7.2 HTTP(Hyper Text Transfer Protocol)练习二 页面提交练习三 访问比较复杂的主页实验7.3 DHCP(Dynamic Host Configuration Protocol) 实验7.1 FTP协议 dir LIST&…...

HTML 表格与div深度解析区别及常见误区

一、HTML<div>元素详解 <div>是HTML中最基本的块级容器元素&#xff0c;本身没有语义&#xff0c;主要用于组织和布局页面内容。以下是其核心用法&#xff1a; 1. 基础结构与特性 <div><!-内部可包含任意HTML元素 --><h2>标题</h2><p…...

Linux 系统中设置开机启动脚本

Linux 系统中设置开机启动脚本有多种方法,适用于不同的场景和需求。以下是几种最常用且详细的方法: 核心理念: 无论哪种方法,核心都是让系统在启动过程中的某个阶段执行你的脚本。 1. 使用 systemd (推荐,现代 Linux 发行版的标准) systemd 是目前大多数主流 Linux 发行…...

linux-进程信号的产生

Linux中的进程信号&#xff08;signal&#xff09;是一种用于进程间通信或向进程传递异步事件通知的机制。信号是一种软中断&#xff0c;用于通知进程某个事件的发生&#xff0c;如错误、终止请求、计时器到期等。 1. 信号的基本概念 - 信号&#xff08;Signal&#xff09;&am…...

内容中台重构企业知识管理路径

智能元数据驱动知识治理 现代企业知识管理的核心挑战在于海量非结构化数据的有效治理。通过智能元数据分类引擎&#xff0c;系统可自动识别文档属性并生成多维标签体系&#xff0c;例如将技术手册按产品版本、功能模块、适用场景进行动态标注。这种动态元数据框架不仅支持跨部…...

ubuntu22.04卸载vscode

方法 1&#xff1a;通过 Snap 卸载 VSCode 如果你是通过 Snap 安装的 VSCode&#xff08;Ubuntu 22.04 默认推荐方式&#xff09;&#xff0c;按照以下步骤卸载&#xff1a; 检查是否通过 Snap 安装&#xff1a; bash snap list | grep code如果输出显示 code&#xff0c;说明…...

AGI大模型(19):下载模型到本地之ModelScope(魔搭社区)

1 安装模块 魔塔社区提供了下载的模块&#xff0c;如下&#xff1a; pip install modelscope -i https://pypi.tuna.tsinghua.edu.cn/simple 2 模型下载 from modelscope import snapshot_download model_dirsnapshot_download(LLM-Research/Meta-Llama-3-8B,cache_dirrD:\…...

基于Spring Boot+Layui构建企业级电子招投标系统实战指南

一、引言&#xff1a;重塑招投标管理新范式 在数字经济浪潮下&#xff0c;传统招投标模式面临效率低、透明度不足、流程冗长等痛点。本文将以Spring Boot技术生态为核心&#xff0c;融合Mybatis持久层框架、Redis高性能缓存及Layui前端解决方案&#xff0c;构建一个覆盖招标代理…...

Kali安装详细图文安装教程(文章内附有镜像文件连接提供下载)

Kali镜像文件百度网盘&#xff1a;通过网盘分享的文件&#xff1a;kali-linux-2024.2-installer-amd64.iso 链接: https://pan.baidu.com/s/1MfCXi9KrFDqfyYPqK5nbKQ?pwdSTOP 提取码: STOP --来自百度网盘超级会员v5的分享 1.下载好镜像文件后&#xff0c;我们打开我们的VMwa…...