Oracle SQL - HAVING和分析函数的执行顺序

ops/2024/9/24 5:56:01/

分析函数是基于最终的结果集进行开窗的,所以HAVING比分析函数先执行

 ↓ 没有HAVING时,MAX(col3) over()是A2

sql">SQL> WITH subq_a AS2   (SELECT 'A' col1, 'A1' col2, 10 col33      FROM dual4    UNION ALL5    SELECT 'A' col1, 'A1' col2, -5 col36      FROM dual7    UNION ALL8    SELECT 'A' col1, 'A2' col2, 10 col39      FROM dual10    UNION ALL11    SELECT 'A' col1, 'A2' col2, -15 col312      FROM dual)13  SELECT col1, col2, SUM(col3) s_col3, MAX(col2) over() x_col214    FROM subq_a15   GROUP BY col1, col216  /COL1 COL2     S_COL3 X_COL2
---- ---- ---------- ------
A    A1            5 A2
A    A2           -5 A2

 ↓ 有HAVING时,分析函数在HAVING执行过滤后的结果集上开窗计算结果,MAX(col3) over()变成A1

sql">SQL> WITH subq_a AS2   (SELECT 'A' col1, 'A1' col2, 10 col33      FROM dual4    UNION ALL5    SELECT 'A' col1, 'A1' col2, -5 col36      FROM dual7    UNION ALL8    SELECT 'A' col1, 'A2' col2, 10 col39      FROM dual10    UNION ALL11    SELECT 'A' col1, 'A2' col2, -15 col312      FROM dual)13  SELECT col1, col2, SUM(col3) s_col3, MAX(col2) over() x_col214    FROM subq_a15   GROUP BY col1, col216  HAVING SUM (col3) > 017  /COL1 COL2     S_COL3 X_COL2
---- ---- ---------- ------
A    A1            5 A1


http://www.ppmy.cn/ops/13274.html

相关文章

STM32 MPU配置参数

TXE LEVEL一般只用MPU_TEX_LEVEL0 1 - 1 - 1 -0性能最强(TEX - C - B- S). #define MPU_TEX_LEVEL0 ((uint8_t)0x00) #define MPU_TEX_LEVEL1 ((uint8_t)0x01) #define MPU_TEX_LEVEL2 ((uint8_t)0x02) 基于上表进行常用配置 &#xff…

Wireshark数据包分析入门

Wireshark数据包分析 1. 网络协议基础1.1. 应传网数物(应表会传网数物) 2. 三次握手2.1. 第一次握手2.2. 第二次握手2.3. 第三次握手2.4. 三次握手后流量特征 3. 第一层---物理层(以太网)4. 第二层---数据链路层(PPP L…

Swift加载Lottie

OC使用时&#xff0c;需要通过swift透出方法供OC使用 // 此处文件名可以从Build Settings下搜索Generated Header Name的值得出 #import <Test-Swift.h>一、导入包 target iOS douse_frameworks!# 此处pod lottie-ios end二、功能实现 1. 创建组件 import LottieobjcM…

为什么你的抖店总做不好?原因就在这里,你中招了吗?

大家好&#xff0c;我是电商花花。 最近&#xff0c;在评论区看到评论“别人都说十个做抖店&#xff0c;九个失败”&#xff0c;甚至有有新手朋友来找我咨询也是这样说的。 面对这样的问题&#xff0c;我来说一下我的看法&#xff1a; 我认为做不起来并不是平台的原因&#…

Sentinel 流控注解使用

大概原理&#xff1a;通过反射解析注解 SentinelResource信息完成调用&#xff0c;处理方法&#xff0c;类似AOP编程 处理方法的返回类型要保持一致&#xff0c;参数和顺序保持一致&#xff0c; 可以在参数列表最后加 com.alibaba.csp.sentinel.slots.block.BlockException; …

53.基于微信小程序与SpringBoot的戏曲文化系统设计与实现(项目 + 论文)

项目介绍 本站采用SpringBoot Vue框架&#xff0c;MYSQL数据库设计开发&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得基于SpringBoot Vue技术的戏曲文化系统设计与实现管理工作系统化、规范化。 技术选型 后端:…

Spring MVC和Spring Boot

上节已经提到过请求&#xff0c;这次梳理响应。 响应 响应基本上都要被Controller所托管&#xff0c;告诉Spring帮我们管理这个代码&#xff0c;我们在后面需要访问时&#xff0c;才可以进行访问&#xff0c;否则将会报错。并且其是由RestController分离出来的&#xff0c;Re…

Java类加载

1. 类加载过程 1.1 类加载概述 类加载是Java虚拟机&#xff08;JVM&#xff09;将类的字节码加载到内存&#xff0c;并将其转换为可以被JVM执行的对象的过程。Java的类加载是Java语言的重要特性之一。 学习类加载有助于我们更深入地理解 JAVA 类成员的初始化过程和运行过程&am…