【笔记】Cross Join&lag与lead函数
Oracle Cross Join交叉连接 语法
CROSS JOIN 指定第一个表的所有行与第二个表的所有行连接。如果 table1 中有“x”行,table2 中有“y”行,则交叉连接结果集有 x*y 行。当没有指定匹配的连接列时,通常会发生这种情况。
简单来说,可以说如果连接查询中的两个表没有连接条件,那么 Oracle 将返回它们的笛卡尔积。
语法:
SELECT * FROM table1
CROSS JOIN table2;
或者:
SELECT * FROM table1, table2
lag与lead函数
lag与lead函数是跟偏移量相关的两个分析函数,通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤
lead(field, num, defaultvalue) field需要查找的字段
num往后查找的num行的数据,defaultvalue没有符合条件的默认值
lag(field, num, defaultvalue)与lead(field, num, defaultvalue)刚好相反
是往前查找num行的数据。
lead(value_expr [,offset][,default]) over([query_partition_clause] order by Order_by_clause)
参数说明:
value_expr 值表达式,通常是字段,也可是是表达式。value_expr本身不支持分析函数,也就是lead不支持多层调用
offset 偏移,应该是很熟悉的数学概念了,或者是相对偏移,表格来开当前行的第offset行,如果offset是整数就表示是顺序下的前第n行,如果是负数就是往后第n行。 如果不提供这个参数,就是默认为1.
default 默认值,如果没有找到,应该返回什么值的意思,有点类似nvl(col,value)。如果没有设置,且找不到,那么就返回Null
over 理解成在一个结果集范围内,如果后面的partition by为空,那么就是当前的结果集范围内。
query_partition_clause 分区语句,对结果集合分区的语句,是可选的,如果没有就是所有的一个分区。
Order_by_clause 排序语句 必须需要 ,形如order by xxx desc/asc
--交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换
首先使用decode判断当前行id是奇数还是偶数,
如果是奇数用lead函数往下一行偏移查数据,
如果是偶数用lag函数往上一行偏移查数据。
lead(field, num, defaultvalue) field需要查找的字段
num往后查找的num行的数据,defaultvalue没有符合条件的默认值。
lag(field, num, defaultvalue)与lead(field, num, defaultvalue)刚好相反
是往前查找num行的数据。
select id,
decode(mod(id,2), 1, lead(student, 1, student) over(order by id), lag(student, 1) over(order by id)) as student
from seat
【笔记】Cross Join&lag与lead函数的更多相关文章
- ORACLE lag()与lead() 函数
一.简介 lag与lead函数是跟偏移量相关的两个分析函数,通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤.这种 ...
- KingbaseES lag 和 lead 函数
1.简介 lag与lead函数是跟偏移量相关的两个分析函数,通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤. 2 ...
- pandas实现hive的lag和lead函数 以及 first_value和last_value函数
lag和lead VS shift 该函数的格式如下: 第一个参数为列名, 第二个参数为往上第n行(可选,默认为1), 第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL ...
- oralce的lag和lead函数
https://www.cnblogs.com/always-online/p/5010185.html
- oracle lag与lead分析函数简介
lag与lead函数是跟偏移量相关的两个分析函数,通过这两个函数我们可以取到当前行列的偏移N行列的值 lag可以看着是正的向上的偏移 lead可以认为负的向下的偏移 具体我们来看几个例子: 我们先看下 ...
- oracle listagg函数、lag函数、lead函数 实例
Oracle大师Thomas Kyte在他的经典著作中,反复强调过一个实现需求方案选取顺序: “如果你可以使用一句SQL解决的需求,就使用一句SQL:如果不可以,就考虑PL/SQL是否可以:如果PL/ ...
- lead 函数和 lag函数
这两个函数的作用只能通过例子来解释,否则说不明白. 首先创建一个表 SQL> create table test (id number, name varchar2(8), val number ...
- Oracle-分析函数之取上下行数据lag()和lead()
这两个函数是偏移量函数,可以查出一个字段的上一个值或者下一个值,配合over来使用. lead函数,这个函数是向上偏移. lag函数是向下偏移一位. 语法 [语法] lag(EXPR,<OFFS ...
- Hive分析窗体函数之LAG,LEAD,FIRST_VALUE和LAST_VALUE
环境信息:Hive版本号为apache-hive-0.14.0-binHadoop版本号为hadoop-2.6.0Tez版本号为tez-0.7.0 创建表: ),第三个參数为默认值(当往上第n行为NU ...
- SQL LEAD()函数 LAG()函数
lag ,lead 分别是向前,向后:lag 和lead 有三个参数,第一个参数是列名,第二个参数是偏移的offset,第三个参数是 超出记录窗口时的默认值) SQL> select id,na ...
随机推荐
- printJS 打印 无头无尾 style 加 @page { margin: 0; } body { padding: 100px;}
// 使用npm模块 print-js printJS({ printable: this.printData, type: 'json', documentTitle: ' ', propertie ...
- SQL语句之索引操作
目录 索引 创建索引 CREATE INDEX 语句 CREATE UNIQUE INDEX 语句 索引多个列 删除索引 参考资料 索引 可以在表中创建索引,以便更加快速高效地查询数据. 用户无法看到 ...
- 基于ADS1292芯片的解决方案之芯片简析
基本资料: ADS1292芯片是多通道同步采样 24 位 Δ-Σ 模数转换器 (ADC),它们具有内置的可编程增益放大器 (PGA).内部基准和板载振荡器. ADS1292 包含 便携式 低功耗医疗心 ...
- 在后台运行 django的基本方法
在后台运行 django: nohup python manage.py runserver 0.0.0.0:9000 &ps:&可以不写,这样启动测试服务器后,就可以常驻后台运行了. ...
- Spring Boot 2.0 新人会踩的坑--启动报404错误
转载自:http://www.javaman.cn/channels/sb2 启动程序,验证效果 根据图示,点击按钮,来启动 Spring Boot Web 程序, 查看控制台输出: . ____ _ ...
- Android Studio源码导入与调试
从事Android开发都需要涉及到Android源码的阅读,特别是系统应用或者Framework开发,读代码的时间远远比写代码的时间更多. 一. 生成iml与ipr 在Android Studio中导 ...
- 大年学习linux(第四节---文件权限)
四.文件权限 文件类型 Linux文件类型和linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如 file.txt.file.tar.gz ,这些文件虽然要用不同的程序 ...
- flutter版本的玩Android客户端
flutter学习案例 目录介绍 00.项目下载与查看 01.项目介绍 02.项目优势 03.部分功能介绍 04.部分截图展示 05.版本更新 06.flutter系列博客 07.感谢 08.如何辨别 ...
- Oracle数据库对比MySQL
基本 Oracle默认端口:1521 默认用户:system MySQL默认端口:3306 默认用户:root 连接MySQL: mysql -u root -p -- 输入密码 -- 查询所有数据库 ...
- docker安装es-header及相关问题解决
安装es-header docker pull mobz/elasticsearch-head:5 docker run --restart=always --name elasticsearch-h ...