SQL 通用表表达式(CTE )
目录
概念:CTE: Common table Expression
CTE 语法
CTE Demo
概念:CTE: Common table Expression
通用表表达式(CTE)是SQL中用于简化复杂查询的工具,第一次上线于SQL Server 2005。
CTE提供了一个临时的结果集,可用于SELECT、INSERT、UPDATE、DELETE和MERGE操作。本文详细介绍了CTE的语法、非递归和递归使用方式,并通过实例展示了如何生成行号。非递归CTE用于一次性查询,而递归CTE则能自我引用,直至满足终止条件。CTE在需要临时结果集的场合非常有用。
相比于TempDB而言的优点是减少I/O操作, 不用主动释放。
CTE 语法
CTE语法
-- Demo 1: expression_name
WITH expression_name [ ( column_name [,...n] ) ]
AS
( CTE_query_definition )select column_name [,...n] from expression_name -- Demo 2: expression_name , expression_name2
WITH expression_name [ ( column_name [,...n] ) ]
AS
( CTE_query_definition )
,expression_name2 [ ( column_name [,...n] ) ]
AS
( CTE_query_definition )select column_name [,...n] from expression_name
union all
select column_name2 [,...n] from expression_name -- Demo 3: expression_name , expression_name2 . 此文章中统计结果基于这个脚本
WITH expression_name [ ( column_name [,...n] ) ]
AS
( CTE_query_definition )select column_name [,...n] from expression_name ; with expression_name2 [ ( column_name [,...n] ) ]
AS
( CTE_query_definition )select column_name2 [,...n] from expression_name
CTE Demo
DemoDB是主数据库,DemoDB.Archive 是Archive数据库
AbpAuditLogs table scripts
CREATE TABLE [dbo].[AbpAuditLogs]([Id] [bigint] IDENTITY(1,1) NOT NULL,[TenantId] [int] NULL,[UserId] [bigint] NULL,[ServiceName] [nvarchar](256) NULL,[MethodName] [nvarchar](256) NULL,[Parameters] [nvarchar](1024) NULL,[ExecutionTime] [datetime] NOT NULL,[ExecutionDuration] [int] NOT NULL,[ClientIpAddress] [nvarchar](64) NULL,[ClientName] [nvarchar](128) NULL,[BrowserInfo] [nvarchar](256) NULL,[Exception] [nvarchar](2000) NULL,[ImpersonatorUserId] [bigint] NULL,[ImpersonatorTenantId] [int] NULL,[CustomData] [nvarchar](2000) NULL,CONSTRAINT [PK_dbo.AbpAuditLogs] PRIMARY KEY CLUSTERED
([Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
用于统计每分钟和每秒钟的并发用户数量。
declare @StartDate datetime=DateAdd(day,-30,getdate());
with tmpT as (select UserId,ExecutionTime=FORMAT(ExecutionTime, 'yyyy-MM-dd HH:mm') from AbpAuditLogs where UserId>0 and ExecutionTime>@StartDateunion all select UserId,ExecutionTime=FORMAT(ExecutionTime, 'yyyy-MM-dd HH:mm') from [DemoDB.Archive].[dbo].[AbpAuditLogs] where UserId>0 and ExecutionTime>@StartDate
)select top 10 ExecutionTime,[AVG-User-In-Minutes]=count(distinct UserId) from tmpT group by ExecutionTime order by [AVG-User-In-Minutes] desc;with tmpTS as (select UserId,ExecutionTime=FORMAT(ExecutionTime, 'yyyy-MM-dd HH:mm:ss') from AbpAuditLogs where UserId>0 and ExecutionTime>@StartDateunion all select UserId,ExecutionTime=FORMAT(ExecutionTime, 'yyyy-MM-dd HH:mm:ss') from [DemoDB.Archive].[dbo].[AbpAuditLogs] where UserId>0 and ExecutionTime>@StartDate
)select top 10 ExecutionTime,[AVG-User-In-Second]=count(distinct UserId) from tmpTS group by ExecutionTime order by [AVG-User-In-Second] desc
相关文章:
SQL 通用表表达式(CTE )
目录 概念:CTE: Common table Expression CTE 语法 CTE Demo 概念:CTE: Common table Expression 通用表表达式(CTE)是SQL中用于简化复杂查询的工具,第一次上线于SQL Server 2005。 CTE提供…...
一台电脑最多能接几个硬盘?
在使用电脑时,硬盘空间不够是许多用户都会遇到的问题。无论是摄影师、剪辑师等需要大量存储空间的专业人士,还是游戏玩家、数据备份爱好者,都可能希望通过增加硬盘来扩展存储容量。然而,一台电脑究竟最多能接多少个硬盘࿱…...
MATLAB中iscell函数用法
目录 语法 说明 示例 确定数组是否为元胞数组 iscell函数的功能是确定输入是否为元胞数组。 语法 tf iscell(A) 说明 如果 A 是元胞数组,则 tf iscell(A) 返回 1 (true)。否则,将返回 0 (false)。 示例 确定数组是否为元胞数组 创建一个元胞数…...
【玩转全栈】---- Django 基于 Websocket 实现群聊(解决channel连接不了)
学习视频: 14-11 群聊(一)_哔哩哔哩_bilibili 目录 Websocket 连接不了? 收发数据 断开连接 完整代码 聊天室的实现 聊天室一 聊天室二 settings 配置 consumer 配置 多聊天室 Websocket 连接不了? 基于这篇博客&…...
如何快速解决django报错:cx_Oracle.DatabaseError: ORA-00942: table or view does not exist
我们在使用django连接oracle进行编程时,使用model进行表映射对接oracle数据时,默认表名组成结构为:应用名_类名(如:OracleModel_test),故即使我们库中存在表test,运行查询时候&#…...
Selenium之简介
Selenium简介 首先,让我们看看官网是怎么定义的 Selenium是一个支持web浏览器自动化的一系列工具和库的综合项目,提供了扩展来模拟用户和浏览器的交互,用于扩展浏览器分配的分发服务器;用于W3C WebDriver规范的基础架构 其实&a…...
pip 安装某个包之后,Jupyter Lab仍旧显示包冲突;例如:Numba needs NumPy 2.1 or less. Got NumPy 2.2.
异常提示 Numba needs NumPy 2.1 or less. Got NumPy 2.2. --------------------------------------------------------------------------- ImportError Traceback (most recent call last) Cell In[8], line 53 import pywt4 import matplot…...
本地安装git
下载git 通过官网 下载 :Git - Downloading Package 若此页面无法直达,请删掉download/win尝试 2.双击运行安装 选择安装目录: 选择配置,默认不动 git安装目录名 默认即可 Git 的默认编辑器,建议使用默认的 Vim 编辑器…...
小程序内表格合并功能实现—行合并
功能介绍:支付宝小程序手写表格实现行内合并,依据动态数据自动计算每次需求合并的值,本次记录行内合并,如果列内合并,同理即可实现 前端技术:grid布局 display:grid 先看实现效果: axml&…...
SSE协议介绍和python实现
概述: SSE(Server-Sent Events)协议是一种允许服务器向客户端实时推送更新的技术,基于HTTP协议,常用于实时数据推送特点: 单向通信:服务器向客户端推送数据,客户端无法发送数据。基…...
甘肃旅游服务平台+论文源码视频演示
4 系统设计 4.1系统概要设计 甘肃旅游服务平台并没有使用C/S结构,而是基于网络浏览器的方式去访问服务器,进而获取需要的数据信息,这种依靠浏览器进行数据访问的模式就是现在用得比较广泛的适用于广域网并且没有网速限制要求的小程序结构&am…...
Spring Boot 3虚拟线程的使用
在Spring Boot非Web应用中,使用虚拟线程时程序提前终止的问题及解决方案,可以通过以下步骤深入理解和验证: 问题根源分析 JVM退出机制 Java中,当所有非守护线程结束时,JVM会立即退出。即使存在正在运行的守护线程&…...
3、pytest实现参数化
在 pytest 中,参数化(parametrization)是一种强大的功能,可以让你用不同的输入数据重复执行同一个测试函数。这种功能非常有用,可以帮助你显著减少重复代码并提高测试覆盖率。 参数化的主要作用是: 测试多…...
【解决】Linux命令报错:Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64
报错命令 yum install zabbix-web-mysql-scl zabbix-apache-conf-scl centos使用scl切换软件版本时提示Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64 报错原因 CentOS7的SCL源在2024年6月30日停止维护了。 当scl源里面默认使用了centos官方的地址&#x…...
WebRTC中音视频服务质量QoS之FEC+NACK调用流程
WebRTC中音视频服务质量QoS之FECNACK调用流程 WebRTC中音视频服务质量QoS之FECNACK调用流程 WebRTC中音视频服务质量QoS之FECNACK调用流程前言一、WebRTC中FEC基础原理1. FEC基础操作 异或操作XOR2、 FEC中 行向和纵向 计算3、 WebRTC中 媒体包分组和生成FEC的包数① kFecRateT…...
神经网络知识点整理
目录 一、深度学习基础与流程 二、神经网络基础组件 三、卷积神经网络(CNN)编辑 四、循环神经网络(RNN)与LSTM 五、优化技巧与调参 六、应用场景与前沿编辑 七、总结与展望编辑 一、深度学习基础与流程 机器学习流…...
远程办公新体验:用触屏手机流畅操作电脑桌面
在数字化浪潮的推动下,远程办公已从“应急选项”转变为职场常态。无论是居家隔离、差旅途中,还是咖啡厅临时办公,高效连接公司电脑的需求从未如此迫切。然而,传统的远程控制软件常因操作复杂、画面卡顿或功能限制而影响效率。如今…...
【面试八股】:常见的锁策略
常见的锁策略 synchronized (标准库的锁不够你用了)锁策略和 Java 不强相关,其他语言涉及到锁,也有这样的锁策略。 1. 悲观锁,乐观锁(描述的加锁时遇到的场景) 悲观锁:预测接下来…...
【python】OpenCV—Hand Detection
文章目录 1、功能描述2、代码实现3、效果展示4、完整代码5、参考6、其它手部检测和手势识别的方案 更多有趣的代码示例,可参考【Programming】 1、功能描述 基于 opencv-python 和 mediapipe 进行手部检测 2、代码实现 导入必要的库函数 import cv2 import media…...
es6的100个问题
基础概念 解释 let、const 和 var 的区别。什么是块级作用域?ES6 如何实现它?箭头函数和普通函数的主要区别是什么?解释模板字符串(Template Literals)的用途,并举例嵌套变量的写法。解构赋值的语法是什么…...
【Git 常用指令速查表】
Git 常用指令速查表 Git 常用指令速查表目录1. 初始化仓库2. 提交代码流程3. 分支管理4. 远程仓库操作5. 撤销操作6. 查看状态与日志7. 其他实用指令完整操作示例常用场景速查表 Git 常用指令速查表 目录 初始化仓库提交代码流程分支管理远程仓库操作撤销操作查看状态与日志其…...
Flink中聚合算子介绍
前言 在flink api中,聚合算子是非常常用的。所谓的聚合就是在分组的基础上做比较计算的操作。下面通过几个简单案例来说明聚合算子的用法和注意事项。 聚合算子案例 因为flink的api操作流程比较固定,从获取执行环境》获取数据源》执行数据转换操作》输…...
【基础】Windows 中通过 VSCode 使用 GCC 编译调试 C++
准备 安装 VSCode 及 C 插件。通过 MSYS2 安装 MinGW-w64 工具链,为您提供必要的工具来编译代码、调试代码并配置它以使用IntelliSense。参考:Windows 中的 Linux 开发工具链 验证安装: gcc --version g --version gdb --version三个核心配…...
Web Services 简介
Web Services 简介 概述 Web Services 是一种网络服务技术,允许不同的应用程序通过互联网进行交互和数据交换。随着互联网的普及和发展,Web Services 已经成为企业级应用中不可或缺的一部分。本文将详细介绍 Web Services 的概念、特点、应用场景以及相关的技术架构。 什么…...
数据仓库 - 转转 - 一面凉经
面试流程 自我介绍 Python 中,如何在数据清洗过程中应对内存不够的情况 如何避免,在使用Pandas处理大规模数据时,经常会遇到“SettingWithCopyWarning”警告 在Hive中,当您使用动态分区功能进行数据插入时,可能会遇…...
2025跳槽学习计划
(1)编程基础: 目录学习资料Chttps://www.bilibili.com/video/BV1z64y1U7hs?spm_id_from333.1387.favlist.content.clickLinuxPytorchhttps://www.bilibili.com/video/BV1if4y147hS?spm_id_from333.1387.favlist.content.clickopencv数据结…...
算法 | 2024最新算法:鳑鲏鱼优化算法原理,公式,应用,算法改进研究综述,matlab代码
2024最新鳑鲏鱼优化算法(BFO)研究综述 鳑鲏鱼优化算法(Bitterling Fish Optimization, BFO)是2024年提出的一种新型群智能优化算法,受鳑鲏鱼独特的繁殖行为启发,通过模拟其交配、产卵和竞争机制进行全局优化。该算法在多个领域展现出优越性能,尤其在解决复杂非线性问题中…...
具身系列——Diffusion Policy算法实现CartPole游戏
代码原理分析 1. 核心思想 该代码实现了一个基于扩散模型(Diffusion Model)的强化学习策略网络。扩散模型通过逐步去噪过程生成动作,核心思想是: • 前向过程:通过T步逐渐将专家动作添加高斯噪声,最终变成…...
前端性能优化:深入解析哈希算法与TypeScript实践
/ 示例:开放寻址哈希表核心实现 class OpenAddressingHashTable<T> {private size: number;private keys: (string | null)[];private values: (T | null)[];private tombstone Symbol(Deleted);constructor(size: number 53) {this.size size;this.keys …...
知识就是力量——物联网应用技术
基础知识篇 一、常用电子元器件1——USB Type C 接口引脚详解特点接口定义作用主从设备关于6P引脚的简介 2——常用通信芯片CH343P概述特点引脚定义 CH340概述特点封装 3——蜂鸣器概述类型驱动电路原文链接 二、常用封装介绍贴片电阻电容封装介绍封装尺寸与功率关系࿱…...
