Oracle 之高级查询

BERT之提取特征向量 及 bert-as-server的使用 本文内容列表提取句向量1、句向量简介1-1传统句向量1-2、BERT句向量2、 extract_features.py源码分析2-1 main函数 前一篇文章 BERT介绍及中文文本相似度任务实践 简单介绍了使用BERT进行中文文本相似度计算的方法,这篇文章着重对特征提取方法进行讲述。 提取句向量 1、句向量简介 1-1传统句向量 更多采用word embedding的方式取加权平均,该方法的一大... 阅读详情

1、常用的分组函数:AVG,SUM,MIN,MAX,COUNT,WM_CONCAT

AVG:平均值,SUM:最大值,MIN:最大值,MAX:最小值,COUNT:计算,WM_CONCAT:行转列

select avg(sal),sum(sal) from emp;
select max(sal),min(sal) from emp;
select count(empno) from emp;
select count(distinct depno) from emp;

set linesize 200
col 部门中员工的编号 for a60
select deptno 部门号,wm_concat(ename) 部门中员工的编号 from emp group by deptno;

2、分组函数和空值:

select sum(comm)|count(*) avg_comm,sum(comm)/count(comm) avg_comm,avg(comm) avg_comm from emp;

分组函数会自动过滤掉空值,所以执行结果不一样。oracle中使用NVL函数使分组函数无法忽略空值。

NVL(value,def_value):当value为空时,返回def_value。

select count(comm),count(nvl(comm,0)) from emp;

3、group by子句:

select a,b,c,组函数(X) from table group by a,b,c;
先按a进行分组,a相同的看b,b相同的看c,如果都相同,则为一组。

注意:在select列表中所有未包含在组函数中的列都应该包含在GROUP BY子句中;包含在GROUP BY子句中的列不必包含在SELECT列表中。

select count(id) num from T_MONITOR_ONLINE_ROOM where in_room = 1 
GROUP BY IN_ROOM_DATE
HAVING count(id) > 45

 

显示部门的平均工资:部门号,平均工资
select deptno,avg(sal) from emp group by deptno;
按部门不同的职位,统计员工的工资总额
select deptno,job,sum(sal) from emp group by deptno,job order by deptno;

非法使用组函数:
select deptno,count(ename) from emp;
错误:所有包含于select列表中,而未包含于组函数中的列都必须包含在GROUP BY子句中。

4、过滤分组——having子句

HAVING group_condition

平均工资大于2000的部门:
select deptno,sum(sal) from emp group by deptno having sum(sal)>2000;

同样都是过滤数据,where和having的区别:不能在where子句中使用组函数,可以在having子句中使用组函数。

select deptno,avg(sal) from emp group by deptno having deptno=10;
select deptno,avg(sal) from emp where deptno=10 group by deptno;

如果过滤条件中没有分组函数时,where与having通用,那么从sql优化的角度来讲,where的效率更高,因为having是先分组再过滤,而where是先过滤再分组,所以,同等条件下,尽量使用where。

5、使用order by子句进行排序

select deptno,avg(sal) from emp group by deptno order by 2 –select表达式的数目

–a命令 append,追加到上一个命令后面。注意必须添加两个及两个以上的空格
a desc

6、嵌套分组函数

求出平均工资的最大值
select max(avg(sal)) from emp group by deptno;

7、group by语句增强–适用于报表

group by rollup(a,b)–先对a,b分组;在对a分组;最后不分组

select deptno,job,sum(sal) from emp group by rollup(deptno,job);
= select deptno,job,sum(sal) from emp group by deptno,job+select deptno,job,sum(sal) from emp group by deptno+select deptno,job,sum(sal) from emp

break on deptno skip 2–相同的部门号只显示一次,不同的部门号空两行

8、SQL/PLUS报表功能

ttitle col 15 ‘我的报表’ col 35 sql.pno
col deptno heading 部门号
col job heading 职位
col sum(sal) heading 工资总额
break on deptno skip 1

将设置保存为.sql格式的文件,把它保存到一个目录下,然后我们可以在sqlplus中把这个文件用get语句加上路径读取进来,然后我们要执行的话就输入一个@然后加上路径,这样格式就设置好了,我们就可以执行sql语句了,执行sql语句后就会显示成我们设置的格式。

 

多表查询

多个表连接进行查询,数学理论——笛卡尔积。

1、等值连接

连接条件是‘=’号

select e.empno,e.ename,e.sal,d.dname
from emp e,dept d
where e.deptno=d.deptno–等号连接,等值连接

2、不等值连接

连接条件不是‘=’号

select e.empno,e.ename,s.grade
from emp e,salgrade s
where e.sal betweem s.losal and s.hisal–between and 小值在前,大值在后

3、外连接

通过外连接,把对于连接条件不成立的记录,仍然包含在最好的结果中,分为左外连接和右外连接。左外连接:当条件不成立的时候,等号左边的表仍然被包含。右外连接:当条件不成立的时候,等号右边的表仍然被包含。

特别注意左外连接和右外连接的写法,位置与名字相反,符号用‘(+)’表示。
左外连接where e.deptno=d.deptno(+);
右外连接where e.deptno(+)=d.deptno;

按部门统计员工人数

select d.deptno 部门号,d.dname 部门名称,count(e.empno) 人数
from emp e,dept d
where e.deptno(+)=d.deptno
group by d.deptno,d.name

4、自连接

通过表的别名,将一张表视为多张表

查询员工姓名和员工的老板姓名
select e.ename 员工姓名,b.ename 员工老板
from emp e,emp b
where e.ename = b.ename

问题:不适合操作大表,原因是自连接至少有两张表参与,并进行笛卡尔全集,连接之后的记录数就是单张表记录数的平方(笛卡尔积行数是两张表行数的乘积)————解决办法:层次查询。

层次查询:可以替代自连接,本质是一个单表查询。

select level,e.empno,e.ename,e.sal,e.mgr–leval伪列
from emp e
connect by prior empno=mgr
start with mgr is null–只有根节点才可以这么表示
order by 1;

层次查询是单表查询,不产生笛卡尔积,但是得到的结果不够直观。

某AI推荐系统项目管理复盘:架构师总结的6大方法论与调优策略 我是张三,某大厂资深AI架构师,主导过5个千万级用户的推荐系统项目(覆盖电商、内容、视频、音乐、外卖等场景)。我的公众号“AI架构师笔记”会分享更多AI项目管理和技术实战经验,欢迎关注。最后的话:推荐系统不是“一锤子买卖”,而是“持续优化的过程”。希望这篇文章能帮你少踩坑,多做对——毕竟,把复杂的事做成,才是架构师的核心能力。 阅读详情

相关推荐

Conformal LEC逻辑等价性检查介绍和参考脚本

分为三个产品:Conformal L、Conformal XL、Conformal GXL。L是功能性检查,XL支持复杂数据通路的综合和APR优化,GXL支持定制的stdcell和定制memory的检查。Cadence Conformal Equivalence Checker,就是常说的LEC,可以用来验证RTL、门级网表、甚至spice网表的逻辑等价性。do文件是conformal的脚本文件,可以由综合工具(RTL Compiler/Genus)自己产生(write_do_lec),也可以手写。

NanDigits的博客 7244

oracle—高级查询

集合操作,高级分析函数等

weixin_43752912的博客 1337

AI小智语音服务架构与嵌入式成本优化实践

语音交互系统是智能硬件的核心能力,其本质是端云协同的实时数据处理链路,涵盖音频采集、流式传输、语义理解与语音合成四大技术环节。原理上需严格划分物理层(确定性音频I/O)、协议层(WebSocket/Range可靠性通信)和语义层(ASR/LLM/TTS职责解耦),以保障低延迟与高可用。技术价值在于通过VAD前置过滤、分块下载、Token截断等嵌入式级优化,显著降低云端调用成本与网络开销。典型应用场景包括儿童故事机、智能音箱、教育机器人等对响应速度、音色自然度和单次交互成本敏感的AI小智设备。本文聚焦火山引擎

weixin_30653091的博客 349

Oracle 数据库的高级查询

一、分组函数:    常用的分组函数:AVG-平均值,SUM-总和,MIN-最小值,MAX-最大值,COUNT-计数,WM_CAONCAT-行转列1>行专列(wm_concat)    2>分组函数会自动忽略空值处理方式:使用NVL函数例:第一种书写方式会忽略空值,第二三种书写方式正确3、group by子句的书写规范:select列表中所有未包含在分组函数中的列都应该包含在group...

465

WPS制作甘特图实操(带图超详细)

一、数据准备 图1 二、添加公式 在表格的E3处添加公式:=IF(C3>=G3,0,IF(C3+D3>=G3,G3-C3,D3)),点击该单元格的右下角。使鼠标箭头变“+”后下拉拖拽,复制该公式。F3处的公式为:=D3-E3,使用相同的拖拽方式复制公式应用,操作完毕如下图3. 图2 图3 三、插入图表 1、选中方框1内容,按住ctrl按键,继续选择2、3列的内容,点击插入全部图表中的条形图,选择2对应的图标样式,生成图6的样式。 点击图6中的3标尺,右击选择数据弹出图8,点击+号选择表格中

m0_49047167的博客 3万+

LangFuse部署与实践

LangFuse的原理主要是基于可观察性和分析技术来监控和优化低延迟消息(LLM)应用。它提供了一套完整的解决方案,通过收集、处理和分析LLM应用在运行过程中产生的各种数据,来生成实时的、深入的、可操作的见解。通过提供实时的、深入的见解和可视化的跟踪功能,LangFuse使得识别和解决应用性能问题变得更加简单和高效。总的来说,LangFuse的原理是通过综合运用可观察性和分析技术,来提供对LLM应用的全面监控和优化能力。这使得开发者和运维团队能够更加高效地管理和维护他们的应用,从而提升用户体验和业务效益。

pumpkin84514的博客 7930

Oracle 第19章:高级查询技术

子查询(Subquery)是指嵌套在另一个SQL语句中的查询。子查询可以出现在SELECT、INSERT、UPDATE或DELETE语句中,也可以作为其他子查询的一部分。根据其返回的结果数量,子查询可以分为单行子查询和多行子查询。

hummhumm的专栏 2460

SAP前台处理:业务伙伴维护(客户主数据和供应商主数据)之基础视图 <BP>

这里主要讲解BP业务伙伴主数据中和财务相关的一些内容,包括基础视图数据,采购视图数据,销售视图数据,公司代码视图数据; S4统一了供应商和客户,从事务代码上:不再使用FD01和FK01进行维护,而使用事务代码BP统一维护;

SAP.David.Gao的博客 3455

Oracle数据库学习(四)--高级查询

1. SQL(高级查询) 1.1. 子查询 1.1.1. 子查询在WHERE子句中 在SELECT查询中,在WHERE查询条件中的限制条件不是一个确定的值,而是来自于另外一个查询的结果。为了给查询提供数据而首先执行的查询语句叫做子查询。 子查询:嵌入在其它SQL语句中的SELECT语句,大部分时候出现在WHERE子句中。子查询嵌入的语句称作主查询或父查询。主查询可以是SELECT语

fudapeng7的博客 4332

/proc/sys/vm/max_map_count耗尽时,调用glibc 2.11.3 free()导致程序crash,问题追踪和解决

1. 问题 在客户环境下,当我们的程序消耗较大内存时,会偶尔crash。 通过gdb分析,程序core dump在malloc/free函数内。 当把/proc/sys/vm/max_map_count 从65530增加到131070,程序再也不crash。 相关命令 echo 131073 > /proc/sys/vm/max_map_count 2.  core

万大胖博客,苦并快乐着 4428

【复现论文】Looking here or there? Gaze Following in 360-Degree Images

论文:Looking here or there?

RichardoMu的博客 1127

Oracle 高级 SQL 查询与函数详解:多表连接、子查询、聚合、分析函数

本文系统介绍了Oracle高级SQL查询技巧,包括多表连接(INNER JOIN、LEFT JOIN等)、子查询(标量、列、行、表子查询)、聚合函数与分组(GROUP BY、HAVING)等基础操作,以及字符处理、日期函数、条件表达式(CASE WHEN/DECODE)和分析函数(ROW_NUMBER、LAG/LEAD)等高级功能。通过大量实用示例代码,帮助初学者快速提升SQL能力,中级开发者查漏补缺。这些技巧是Oracle数据库开发的核心技能,适用于实际业务中的数据提取、计算和报表生成等场景。建议读者在本

BUG糕手的博客 1511

302.QoS实现工具之MQC

QoS 技术可以对网络中报文进行分类处理,根据优先级提供不同的差分服务,如何实现这种差分服务呢?我们有一种强大的配置方法 - 模块化 QoS 命令行 MQC(Modular QoS Command-Line)。下面就来介绍一下 MQC。

迷逝 1389

oracle高级查询总结

oracle与我们常用的sqlserver、mysql相比,有非常多的优势,它可以支持多个实例同时运行,功能非常强大,主要在传统行业的数据化业务中,比如:银行、金融这样的对可用性、健壮性、安全性、实时性要求极高的业务;零售、物流这样对海量数据存储分析要求很高的业务。此外,高新制造业如芯片厂也基本都离不开Oracle;电商也有很多使用者,如京东(正在投奔Oracle)、阿里巴巴(计划去Oracle化

变是永远不变的...... 4691

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Oracle 高级查询

Oracle 高级查询 分组查询 分组函数的概念 分组函数作用于一组数据,并对一组数据返回一个值。 分组函数的使用 分组函数会自动忽略空值,可以通过nvl() 去做特殊处理。 AVG and SUM // 求出员工的平均工资和工资的总额 select avg(sal), sum(sal) from emp; MIN and MAX // 求出员工工资的最大值和最小值 select MAX(sal),MIN(sal) from emp; COUNT // 求出员工的总人数 select count(*

涛涛之海 468

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

oracle高级查询功能,Oracle高级查询

Oracle高级查询使用Oracle特有的查询语法, 可以达到事半功倍的效果1. 树查询createtabletree(idnumber(10)notnullprimarykey,namevarchar2(100)notnull,supernumber(10)notnull//0isroot);--从子到父select*fro...

weixin_30851655的博客 367

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

oracle高级查询功能,Oracle高级查询-更新中

概述高级查询在数据库的开发过程中应用广泛,本博文将从分组查询、多表查询和子查询三个方面介绍Oracle的高级查询,最后典型案例的应用。sql窗口修改已执行的sqled表示编辑上个sql/ 表示执行上个sql 分组查询分组函数的概念分组函数作用于一组数据,并对一组数据返回一个值。 分组函数的语法 常用分组函数avgsumminmaxcountwm_contact 行转列分组函数的使用avg()/su...

weixin_36393239的博客 241

Oracle高级查询

概述高级查询在数据库的开发过程中应用广泛,本博文将从分组查询、多表查询和子查询三个方面介绍Oracle的高级查询,最后典型案例的应用。sql窗口修改已执行的sqled表示编辑上个sql / 表示执行上个sql分组查询分组函数的概念分组函数作用于一组数据,并对一组数据返回一个值。 分组函数的语法常用分组函数 avg sum min max count wm_contact 行转列 更多及用法请参考

小工匠 2万+

Oracle高级查询语句

Oracle高级查询语句 一、分组查询 1.分组函数group by :分组函数作用于一组数据,并对一组数据返回一个值 2.常用的分组函数: ·AVG 取平均值 ·SUM 求和 ·MIN 取最小值 ·MAX 取最大值 ·COUNT 统计次数 ·WM_CONCAT 行转列 如...

fhy36897的博客 931

jdbc连接oracle、oracle函数、高级查询

文章目录一、课程目标二、Oarcle的连接三、Oracle函数3.1 字符串函数3.2 日期函数3.3 转换函数3.4 数字函数四、Oracle高级查询4.1 多表查询4.2 子查询4.3 分页查询 一、课程目标 【掌握】jdbc连接Oracle 【理解】Oracle函数 【理解】Oracle高级查询 二、Oarcle的连接 1、导入jar包 2、注册驱动 3、创建连接 4、准备sql进行预编译 5、执行处理结果集 6、关闭连接释放资源 import java.sql.Connection; import

温故。的博客 865

Oracle的高级查询

<br /><br />Oracle的高级查询<br />     前面介绍的查询还局限在数据库的一张表内。但在实际应用中,我们经常需要在多张表中查询数据或者需要对表中的数据进行分类、汇总等。这就需要较为复杂的高级查询<br />前提掌握部分{<br />多个表之间关系:一对多|(多对一)  多对多一对一 3种<br />关系的完整性约束:实体完整性、参照完整性、用于定义的完整性。必须满足实体完整性和参照完整性.<br />实体完整性:规定了字段|属性的约束<br />参照完整性:关系与关系之间的引用某个字

ing 4340

Oracle的高级查询-分组、连接、子查询、分页

Oracle的高级查询 概述:Oracle作为一个老牌数据库,风风雨雨经历了二三十年。我们平时工作的时候,或多或少也会接触到Oracle数据库的使用。在数据库开发中,简单的单表操作,对大部分刚入行的新人来说,不会有太大的问题。 但是随着我们所开发业务系统的功能多样化,为了实现复杂的需求,我们就会使用的高级查询。Oracle高级查询中,比较难理解的是分组查询,连接查询以及子查询,以及基于子查询的分页...

tsxiong123的博客 1313

oracle_高级子查询

 oracle_高级子查询 ①子查询 子查询是嵌套在 SQL 语句中的另一个SELECT 语句 子查询 (内查询) 在主查询执行之前执行 主查询(外查询)使用子查询的结果 ②多列子查询 主查询与子查询返回的多个列进行比较 where (column1,column2) in (子查询) 例:查询与141号或174号员工的manager_id和department_id相同的其

不积跬步无以至千里,不积小流无以成江海 2164

ORACLE 06 SELECT高级查询

一、实验目的 1.掌握SELECT语句的多表连接查询。 2.掌握SELECT语句的子查询。 二、实验内容 1.根据Oracle数据库scott方案下的emp表和dept表,完成下列操作: (1)查询所有工种为CLERK的员工的姓名及其部门名称。 (2)查询所有部门及其员工信息,包括那些没有员工的部门。 (3)查询所有员工及其部门信息,包括那些还不属于任何部门的员工。 (4)查询在SA

h 2532

Oracle复习(三)SQL高级查询

Oracle复习(三) SQL高级查询: 默认日期格式:日期数据的格式是dd-mon-yy 设置默认的日期格式 ALTER SESSION SET NLS_DATE_FORMAT=‘date_format’; date_format参数既可以采用 month-dd-yyyy格式,也可以采用yyyy-month-dd格式, 还可以采用yyyy-dd-month格式 日期-字符的转换 ...

DLUT_WJX的博客 2366

oracle数据库SQL开发之高级子查询

oracle数据库SQL开发之高级子查询一、嵌套子查询二、相关子查询(父查询中的行每被处理一次,子查询就执行一次) 一、嵌套子查询 • 在通常的子查询中,子查询是以嵌套的方式写在父查询的where、having、from子句中,所以被称为嵌套子查询. • 嵌套子查询的执行过程: – 1.子查询首先执行一次; – 2.用来自子查询的值确认或取消父查询的候选行; 二、相关子查询(父查询中的行每被处理一...

CPJ0310的博客 782
上一篇: Kafka学习记录
下一篇: oracle中字符串的操作
宁漂打工仔
博客等级 码龄9年 1万+粉丝 153原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁漂打工仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值