在from子句中使用子查询

目录

查询每个部门的编号、名称、位置、部门人数、平均工资

多表查询分组统计

子查询分组统计


Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645

为了解释这种查询的作用,下面做一个简单的查询

查询每个部门的编号、名称、位置、部门人数、平均工资

这个前面已经讲过了

SQL> select d.deptno,d.dname,d.loc,count(*),avg(sal)
  2  from emp e,dept d
  3  where e.deptno(+)=d.deptno
  4  group by d.deptno,d.dname,d.loc;

    DEPTNO DNAME                        LOC                          COUNT(*)   AVG(SAL)
---------- ---------------------------- -------------------------- ---------- ----------
        10 ACCOUNTING                   NEW YORK                            3 2916.66667
        20 RESEARCH                     DALLAS                              3 2258.33333
        30 SALES                        CHICAGO                             6 1566.66667
        40 OPERATIONS                   BOSTON                              1

除了以上的方式之外,也可以利用子查询完成

首先 dept 是一张数据表,但是对于数据的统计查询,也可以将查询的结果定义为一张新的表

SQL> select deptno,count(empno),avg(sal)
  2  from emp
  3  group by deptno;

    DEPTNO COUNT(EMPNO)   AVG(SAL)
---------- ------------ ----------
        30            6 1566.66667
        10            3 2916.66667
        20            3 2258.33333

此时,查询返回的是一个多行多列的数据,那么只要是多行多列,我们就可以把它看成是一个新的临时表,然后可以在 FROM 子句中使用

SQL> select d.deptno,d.dname,d.loc,temp.count,temp.avg
  2  from dept d,(
  3  select deptno,count(empno) count,avg(sal) avg
  4  from emp
  5  group by deptno) temp
  6  where d.deptno=temp.deptno(+);

    DEPTNO DNAME                        LOC                             COUNT        AVG
---------- ---------------------------- -------------------------- ---------- ----------
        10 ACCOUNTING                   NEW YORK                            3 2916.66667
        20 RESEARCH                     DALLAS                              3 2258.33333
        30 SALES                        CHICAGO                             6 1566.66667
        40 OPERATIONS                   BOSTON

现在有两种方式可以实现同样功能的查询,那么这两种方式有什么区别呢?

为了更好地解释此类问题,现在假设将数据扩大 10 倍,即此时的 emp 表中有 140 条记录,dept 表中有 40 条记录,现在分析这两种方式

多表查询分组统计

数据量为 emp 表的 1400 * dept 表的 400 = 640000 

子查询分组统计

from子句的数据量为 140 行记录,最多会返回 40 行记录。
与 dept 表查询,dept 表的 400 * 最多返回的 400 = 160000。
数据量为分组的 140 行 + 16000 行 = 161400。
多表查询都会存在性能问题,而子查询的主要目的就是为了解决多表查询的性能问题
在子查询的使用中,应注意以下几点。

(1)子查询必须用括号“ () ”扩起来

(2)子查询中不能再包括 order by 子句

(3)如果需要对查询数据进行排序,只能在外查询语句中使用 order by 子句

(4)子查询允许嵌套,但是不能超过 25 层。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/414947.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt中tableView控件的使用

tableView使用注意事项 tableView在使用时,从工具栏拖动到底层页面后,右键进行选择如下图所示: 此处需要注意的是,需要去修改属性,从UI上修改属性如下所示: 也可以通过代码修改属性: //将其设…

存内计算技术大幅提升机器学习算法的性能—挑战与解决方案探讨

一.存内计算技术大幅机器学习算法的性能 1.1背景 人工智能技术的迅速发展使人工智能芯片成为备受关注的关键组成部分。在人工智能的构建中,算力是三个支柱之一,包括数据、算法和算力。目前,人工智能芯片的发展主要集中在两个方向&#xff1…

《App备案入门指南》:拯救备案小白,让您不再担心

各大云接入商ICP代备案管理系统均已正式支持App备案。为便于大家快速学习了解App备案的相关知识,创孵猫通过网上搜集和整理为大家准备了一些基础信息与常见问题。 一、App备案流程 App备案流程包括云接入商初审、工信部短信核验、管局终审和备案成功等关键步骤。在…

腾讯云4核8G的云服务器性能水平?使用场景说明

腾讯云4核8G服务器适合做什么?搭建网站博客、企业官网、小程序、小游戏后端服务器、电商应用、云盘和图床等均可以,腾讯云4核8G服务器可以选择轻量应用服务器4核8G12M或云服务器CVM,轻量服务器和标准型CVM服务器性能是差不多的,轻…

等保2.0高风险项全解析:判定标准与应对方法

引言 所谓高风险项,就是等保测评时可以一票否决的整改项,如果不改,无论你多少分都会被定为不合格。全文共58页,写得比较细了,但是想到大家基本不会有耐心去仔细看的(凭直觉)。这几天挑里边相对…

5G网络介绍

目录 一、网络部署模式 二、4/5G基站网元对标 三、4/5G系统架构对比 四、5G核心单元 五、边缘计算 六、轻量化(UPF下沉) 方案一:UPF下沉 方案二:UPF下沉 方案三:5GC下沉基础模式 方案四:…

K8S之使用Deployment实现滚动更新

滚动更新 滚动更新简介使用Deployment实现滚动更新相关字段介绍测试滚动更新观察滚动更新查看历史版本 自定义滚动更新策略自定义配置建议实践自定义策略通过 RollingUpdateStrategy 字段来设置滚动更新策略使用Recreate更新策略 滚动更新简介 滚动更新是一种自动化程度较高的…

代码随想录算法训练营第27天—贪心算法01 | ● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和

理论基础 https://programmercarl.com/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 贪心算法的本质:由局部最优推到全局最优贪心算法的套路:无固定套路 455.分发饼干 https://programmercarl.com/0455.%E5%88%8…

小程序框架(概念、工作原理、发展及应用)

引言 移动应用的普及使得用户对于轻量级、即时可用的应用程序需求越来越迫切。在这个背景下,小程序应运而生,成为一种无需下载安装、即点即用的应用形式,为用户提供了更便捷的体验。小程序的快速发展离不开强大的开发支持,而小程…

vue项目从后端下载文件显示进度条或者loading

//API接口 export const exportDownload (params?: Object, peCallback?: Function) > {return new Promise((resolve, reject) > {axios({method: get,url: ,headers: {access_token: ${getToken()},},responseType: blob,params,onDownloadProgress: (pe) > {peC…

市场复盘总结 20240228

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 二进三: 进级率 25% 最常用的二…

LeetCode104.二叉树的最大深度

题目 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 输入:root [3,9,20,null,null,15,7] 输出:3思路 计算二叉树的最大深度通常可以使用 递归 来实现。我们可以从根…

react倒计时功能

目录 类组件写法 函数组件写法: demo: 手机获取验证码登录(验证码60秒倒计时) react倒计时5 秒 React中的倒计时可以通过使用setInterval()函数来实现。下面是一个示例代码: 类组件写法 import React from react; import { But…

什么是电子邮件客户端?如何选择合适的邮箱客户端?

“从1到10分,你会如何评价我们的电子邮件服务?” 无论你的评分是多少,影响你评分的一个重要因素肯定是电子邮件客户端提供的功能。 电子邮件客户端应该具有基本而漂亮的高级功能,以使迁移过程更容易。此外,应该有一些…

C语言第三十二弹---自定义类型:联合和枚举

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 目录 1、联合体 1.1、联合体类型的声明 1.2、联合体的特点 1.3、相同成员的结构体和联合体对比 1.4、联合体大小的计算 1.5、联合的⼀个练习 2、枚举类型 …

微信小程序引入Vant插件

Vant官网:Vant Weapp - 轻量、可靠的小程序 UI 组件库 先查看官网的版本 新建一个package.json页面,代码写上:(我先执行的npm安装没出package页面,所以先自己创建了一个才正常) {"dependencies"…

Aethir推出其首次去中心化AI节点售卖

Aethir,去中心化GPU云基础设施领导者,宣布其备受期待的节点销售。Aethir是一家企业级的以AI和游戏为重点的GPU即服务提供商。Aethir的去中心化云计算基础设施使GPU提供商能够与需要NVIDIA的H100芯片提供强大AI/ML任务支持的企业客户相连接。 此外&#x…

网页数据的存储--存储为文本文件(TXT、JSON、CSV)

用解析器解析出数据后,接下来就是存储数据了。数据的存储有多种多样,其中最简单的一种是将数据直接保存为文本文件,如TXT、JSON、CSV等。这里就介绍将数据直接保存为文本文件。 目录 一、Python存储数据的方法 1、 文件读取 2、 文件写入…

线性规划基础

利用一个简单的实例来介绍什么事线性规划,假设如果有一家巧克力工厂需要生产两种不同类型的巧克力,分别是类型A和类型B,两种巧克力用到的原材料是一样的,都是使用牛奶和可可两种材料,主要的区别是在与这两种原料的配料比区别,而对于类型A巧克力,生产一单位的巧克力会需要…