postgresql递归查询使用CTE

PostgreSQL与DuckDB递归CTE查询性能对比与优化 递归CTE(Common Table Expression)是SQL中处理层次化数据的核心语法,通过WITH RECURSIVE实现树形结构遍历和图数据分析。其执行原理本质是迭代计算:先处理基础查询(anchor member),再循环处理递归部分直到满足终止条件。在OLTP场景中,成熟的查询优化器能动态调整JOIN策略和内存分配,而OLAP引擎则更依赖列式存储和并行计算优势。当处理深度递归查询时,不同数据库的实现差异会导致显著性能差距,例如PostgreSQL的智能Hash Join优化对比DuckDB的 阅读详情

with查询是PostgreSQL支持的高级SQL特性之一,这一特性常称为CTE(Common Table Expressions),with查询就相当于在查询中定义的临时表,应用场景层次结构或树状结构
但是递归查询有一个重要属性,RECURSIVE,使用RECURSIVE属性可以引用自己的输出,从而实现递归。

至于怎么用接下来看我的案例吧!

存在一张包含以下数据的表
表数据列表

当给定一个id时能得到它完整的地名,id=7时,地名是:中国辽宁沈阳和平区,当id=5时,地名是:中国辽宁大连

思路步骤
1.使用PostgreSQL的WITH查询ID为7以及以上的所有父节点和名字
2.将输出的记过的name字段合并一个,通过string_agg函数实现(函数传送门)

具体代码如下

with recursive t as(
	select * from test_area where id = 7
	union all
	select test_area.* from test_area,t where test_area.id=t.fatherid
) 
select string_agg(n.name,'') from (select name,id from t  order by id) n

总结CTE的好处
1.CTE可以简化SQL代码,减少SQL嵌套层数,提高SQL代码的可读性。
2.CTE的辅助语句只需要计算一次,在主查询中可以多次使用。
3.当不需要共享查询结果时,相比视图更轻量。

=2021.08.10分割线===========
其中,我想要一个sql我想要一个SQL查询将第二行数据显示为第一行,将第三行数据显示为第二行,依此类推
举个例子,我想要年龄为这样

年龄(岁)下一个年龄(岁)
1岁2岁
2岁3岁
3岁4岁

实现的sql语句用递归查询

WITH CTE AS
(
	
	select 

	toUInt64OrZero(age) as age
	from resident_long rl
	group by age
	order by age
)
SELECT base.age `年龄(岁)`, nxt.age `下一个年龄(岁)`
from CTE base
LEFT OUTER JOIN CTE nxt on nxt.age = base.age + 1

实现效果
效果图

PostgreSQL里的子查询和CTE居然在性能上“掐架”?到底该站哪边? 子查询是嵌套在其他查询中的查询语句,本质是“用一个查询的结果作为另一个查询的输入”。非相关子查询:可独立执行,不依赖外部查询的任何值(比如“先统计各地区销售额,再过滤超过100万的地区”);相关子查询:依赖外部查询的字段值(比如“计算每个订单对应的客户平均订单金额”)。示例:非相关子查询-- 统计销售额超100万的地区(非相关子查询)FROM (SELECT region, SUM(amount) AS total_sales -- 子查询:统计各地区销售额示例:相关子查询。 阅读详情

相关推荐

PostgreSQL之SQL高级特性

1.with 查询 2.批量插入 3.returning 返回修改数据 4.upsert 5.数据抽样 6.聚合函数 7.窗口函数

奋斗的阿杰的博客 862

PostgreSQL中的CTE(公共表表达式)知多少? - (中级)

PostgreSQL中的CTE:公共表表达式是一种更好的临时表. 用于较大查询的辅助语句.用于只在一个查询中存在的临时表。在WITH子句中的每一个辅助语句可以是一个SELECTINSERTUPDATE或DELETE,并且WITH子句本身也可以被附加到一个主语句,主语句也可以是SELECTINSERTUPDATE或DELETE。这也是PostgreSQL的一个非常重要的功能。有很多商用关系数据库甚至还没有这个特色功能。仔细再读了下这篇文档,感觉组织的不是很理想。试图重新组织一下,便于理解其中的使用方法。

iihero@优快云 2667

《PostgreSQL开发指南》第20篇 通用表表达式

通用表表达式(Common Table Expression)是一个临时的查询结果或者临时表,可以在其他SELECT、INSERT、UPDATE以及DELETE语句中使用。 使用 CTE 可以提高复杂查询的可读性,递归 CTE 可以遍历各种层次数据。CTE 和 DML 语句一起使用可以在一个语句中执行多个表的操作。

Tony.Dong的专栏 2733

【PostgreSQL】提高篇——公用表表达式(CTE)和窗口函数

公用表表达式(Common Table Expression,CTE)是一种在 SQL 查询中定义临时结果集的方式,可以在主查询中多次引用。CTE 可以提高查询的可读性和结构性,尤其是在处理复杂的查询时。使用 CTE,可以避免使用嵌套查询,从而使 SQL 代码更清晰。窗口函数是一种在结果集的每一行上执行计算的函数,它允许我们在不分组的情况下进行聚合计算。窗口函数通常用于计算排名、移动平均、累计和等。与普通的聚合函数不同,窗口函数不会减少结果集的行数。

thinking_chou的专栏 1907

【postgresql 基础入门】CTE(common table expression)让你轻松写出复杂多变的嵌套SQL,同时SQL也可以递归树的遍历查询

在一些分析型业务中,通常会遇到一些非常复杂的SQL语句,多个子查询的联合,此时可以使用 common table expression (CTE) 方式的SQL写法,来让SQL更加简化和易于理解,本文就来分享一下postgresql中的CTE语言的写法,以及使用案例。

一个追逐梦想的码农 3502

【LabVIEW懒人系列教程-视觉入门】2.6LabVIEW模板匹配之创建模板

上期2.5在Labview软件框架中实现了模板匹配功能的运用,然而我们的模板图像是通过视觉助手创建出来的,在实际项目中这样做 ,难免有些不妥。所以,今天就给大家讲解一下,如何编写创建模板功能,模板图像的创建与加载需要注意一些什么。 模板图片的创建,大家可以理解为将图像中的一个特征区域扣下来,通过Labview函数进行信息学习,然后保存成带有图像信息的模板图。 具体做法,下面为大家演示一下 百度网盘视频链接:https://pan.baidu.com/s/1-zxcJBxPgk4t1Ej..

视觉龙哥 2167

在 MySQL 中使用 CTE

CTE 是在 SQL 查询中定义的一个临时结果集,其作用范围仅限于定义它的查询。CTE 通常用于简化复杂查询,并可以用于递归查询。CTE 的定义部分类似于创建一个临时视图,但其生命周期仅限于当前查询。CTE 是 MySQL 中一个强大的查询工具,可以帮助用户简化复杂查询、提高代码的可读性和维护性。通过 CTE,用户可以轻松地定义和使用临时结果集,支持递归查询和数据清理。掌握 CTE 的使用方法和最佳实践,对于提高 SQL 查询的效率和组织性至关重要。

网络技术联盟站 2517

fastbin attack快速入门

0x01 fastbin简介 Fastbin包含0x20~0x80大小bin的数组指针,用于快速分配小堆块。fastbin按照单链表结构进行组织,相同大小的bin在同一个链表中,fd指向下一个bin,采用LIFO(Last In First Out)机制。在fastbin中,堆块的inuse标志都为1,处于占用状态,防止chunk释放时进行合并,加快小堆块的分配。 正常fastbin的使用 通过这个简单的案例来了解fastbin的单链表结构,malloc和free的过程。 #include<stdio

abelxu 1571

PostgreSQL CTE技术详解:从基础到递归查询实战

公用表表达式(CTE)是SQL中处理复杂查询的利器,它通过WITH子句创建临时命名结果集,显著提升代码可读性和维护性。CTE的工作原理是将查询逻辑模块化,支持链式定义和递归调用,特别适合处理层次结构数据和分阶段分析场景。在PostgreSQL中,CTE默认采用物化执行策略,能有效优化多次引用的中间结果计算。实际工程中,CTE广泛应用于电商用户行为分析、商品推荐系统、组织结构遍历等场景,与窗口函数、JSON处理等高级特性结合能发挥更大价值。通过合理使用MATERIALIZED/NOT MATERIALIZED

weixin_33462167的博客 139

Shopee动态参数x-sap-Ri与x-sap-Sec逆向解析实战

现代电商前端反爬普遍采用动态参数校验机制,其核心是将设备指纹、DOM状态与时间上下文耦合生成不可复用的请求凭证。x-sap-Ri本质是渲染上下文唯一标识,依赖真实浏览器环境中的DOM树结构、Canvas像素指纹及毫秒级时间扰动;x-sap-Sec则是基于该标识与服务端同步密钥生成的HMAC-SHA256签名,具备强时效性与密钥轮换特性。这类机制显著提升了自动化采集门槛,广泛应用于Shopee商品详情页等高价值数据接口。本文聚焦于从Chrome DevTools调试出发,系统还原参数生成逻辑,覆盖DOM一致性

weixin_30603633的博客 896

RTX 50系列显卡选购指南:从Stable Diffusion到深度学习,哪款最适合你的AI需求?

本文深入分析了RTX 50系列显卡如何满足不同的AI应用需求。针对Stable Diffusion图像生成,强调显存容量是关键;对于大语言模型本地推理,需平衡算力与显存;而深度学习训练则更看重算力效率。文章对比了RTX 5090、5080、5070等型号的核心规格与适用场景,并提供了从入门到专业的实战配置建议,帮助用户根据自身AI工作负载精准选择最具性价比的显卡。

linux6sysadmin的博客 689

PostgreSQL递归CTE实现层级数据查询优化

递归查询是处理树形结构数据的核心技术,通过自引用实现多级数据遍历。PostgreSQL的递归CTE特性将递归逻辑封装在SQL语句中,避免了应用程序多次查询的开销。其工作原理基于基础查询和递归部分的组合,特别适合文件系统、组织架构等层级数据场景。通过添加深度信息、路径追踪和循环检测等扩展功能,可以构建更健壮的查询方案。相比多次查询或嵌套集模型,递归CTE在查询效率与维护成本间取得平衡,是数据库工程中处理层级关系的优选方案。

weixin_32576389的博客 8

c语言:读取文件中的指定内容

项目中要求从wifi的状态文件中提取出rssi字段的值,还有一个前提条件:必须与hwaddr(手机的MAC地址)一一对应。 wifi状态文件sta_info如下: # cat /proc/wlan0-vap0/sta_info -- STA info table -- (active: 1) 1: stat_info... state: 405 AuthAlgrthm: 0

u013485792的专栏 1万+

PostgreSQL CTE实战:从复杂SQL重构到递归查询与性能优化

SQL查询复杂度上升后,嵌套子查询的可读性与维护性成为开发者面临的核心挑战。公用表表达式(CTE)通过WITH子句将查询拆解为多个逻辑步骤,让复杂逻辑像代码一样分步构建与验证,其核心价值在于支持中间结果复用、递归展开以及多阶段聚合的清晰表达。在PostgreSQL中,CTE的执行策略包含物化与内联两种方式,优化器会依据使用场景自动选择,而开发者可通过EXPLAIN ANALYZE精准定位性能瓶颈,并结合NOT MATERIALIZED等关键字手动调优。实际工程中,无论是重构多层级报表、处理组织架构树,还是实

weixin_31714129的博客 242

YOLOv11的嗅觉传感器数据关联-(特殊场景下的气味-视觉联合分析)

摘要 本文探讨了YOLOv11与嗅觉传感器融合的多模态感知技术。通过分析YOLOv11的架构特性与嗅觉传感器的数据特点,提出了三种融合策略:数据级、特征级和决策级融合。系统采用硬件同步方案实现时空对齐,包含视觉采集模块、嗅觉传感模块和边缘计算单元。环境配置基于Python 3.9和PyTorch 2.0,支持实时多模态数据处理。该技术可应用于环境监测、工业检测等场景,突破单一视觉感知的局限性。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 625

【软考高项论文】论信息系统项目管理的干系人绩效域

例如,在处理与电信运营商合作铺设光纤网络的问题时,考虑到其在通信设施建设和运维方面的专业性和重要性,我们将之定位为高权力高利益的干系人,给予了高度关注和优先沟通。项目全程,我们对干系人绩效域的执行效果进行了定期检查和评估,通过定量与定性的数据收集,确认了项目在干系人管理上的成效,具体表现为:建立了稳固的工作关系网络,使干系人普遍认可项目目标;鉴于本项目牵涉到政府各级部门、企事业单位、市民团体、技术研发伙伴等多种类型的干系人,且干系人的诉求和影响力各异,因此,有序且持续的干系人参与管理显得尤为关键。

Programming Talk 1681

基于 PostgreSQL Exercises 数据集的 Peewee 查询实战:从基础 SQL 到窗口函数与递归 CTE 的完整对照指南

本文是一份以 Peewee ORM 为主体的查询实战指南,全部练习取自 PostgreSQL Exercises 网站的 club 示例数据集(members / facilities / bookings 三张表)。读者将掌握 Peewee 中 select/where 条件构造、字符串与日期过滤、JOIN 与自连接、子查询、insert/update/delete 各类 DML、GROUP B

gitblog_01052的博客 458

Multica 自托管部署与使用入门:从上线到让 AI Agent 真正干活

Multica是一个将AI Agent作为团队成员的任务协作平台,支持自托管部署。本文介绍了完整的单机部署流程: 核心架构包括前端界面、后端服务、PostgreSQL数据库和Runtime执行机器 推荐使用Docker Compose部署,需配置数据持久化目录 提供详细的docker-compose.yml和.env配置文件说明 重点注意事项:数据库密码和JWT密钥必须修改,生产环境配置必须设为production 需正确配置前端访问地址和WebSocket连接 部署完成后,用户可创建AI Agent并将其

q742971636的博客 1703

PostgreSQL CTE实战:用公用表表达式拆解复杂查询与递归优化

复杂SQL往往因为多层嵌套、多表关联、重复引用而难以维护。公用表表达式(CTE)作为一种具名的临时结果集,能把复杂查询拆解为清晰的步骤链,有效提升可读性与可调试性。从基础WITH语法到多步骤聚合、占比排名、数据清洗去重,再到递归CTE处理树形结构,CTE覆盖了绝大多数复杂查询场景。同时,PostgreSQL 12前后的物化与内联行为差异,也决定了CTE在性能调优中需要灵活选择策略。理解CTE的执行原理,合理使用MATERIALIZED与NOT MATERIALIZED,能在不影响逻辑表达的前提下优化查询效率

weixin_29597551的博客 271

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Camera2Demo

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

SQL递归查询(with cte as)--postgresql,mysql

with cte as ( select Id,Pid,DeptName,0 as lvl from Department where Id = 2 union all select d.Id,d.Pid,d.DeptName,lvl+1 from cte c inner join Department d on c.Id = d.Pid ) select ...

幸福的娃娃菜 468

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

PostgreSQL WITH 子句(CTE)详解

PostgreSQL 的WITH子句(又称公用表表达式,Common Table Expression,CTE)是编写复杂SQL查询的强大工具。它允许创建临时命名结果集,可以在主查询中多次引用,显著提高复杂查询的可读性和可维护性。WITH),提高可读性:将复杂查询分解为逻辑模块代码重用:避免重复子查询递归能力:轻松处理层级数据数据修改:在单一语句中实现复杂操作优化潜力:为查询优化器提供更多信息。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 9442

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【Sql递归查询】Mysql、Oracle、SQL Server、PostgreSQL 实现递归查询的区别与案例(详解)

这种常见的递归查询方式),但可以通过使用存储过程、临时表或自连接等方式来实现递归查询的效果。通过自连接的方式模拟递归查询,适合处理简单的递归结构。假设我们有一个表示部门层级关系的表。MySQL 5.7 本身不直接支持标准 SQL 中的递归查询语法(如。子句进行递归查询,查找某个员工及其所有下属。,但递归方向是从指定员工向上查找其所有上级。语句将父部门和子部门关联起来,然后使用。假设我们有一个表示员工层级关系的表。在 MySQL 8 中,可以使用。子句来实现递归查询。

A的博客 1945

pg 递归算法_PostgreSQL递归查询示例

PostgreSQL提供了WITH语句,允许你构造用于查询的辅助语句。这些语句通常称为公共表表达式或cte。cte类似于只在查询执行期间存在的临时表。递归查询是指递归CTE的查询。递归查询在很多情况下都很有用,比如查询组织结构、物料清单等层次数据下面演示了递归CTE的语法:WITH RECURSIVE cte_name(CTE_query_definition -- non-recursive t...

weixin_39759107的博客 798

PostgreSQL15——通用表表达式(CTE)

通用表表达式(Common Table Expression、CTE)是一个临时的查询结果或者临时表,可以在其他 SELECT、INSERT、UPDATE 以及 DELETE 语句中使用。通用表表达式只在当前语句中有效,类似于子查询。

吴声子夜歌的博客 1291

PostgreSQL 中 CTE 的使用

PostgreSQL 中 CTE 的使用

lizhengyu891231的博客 2632
上一篇: Postgresql如果存在则更新,没有则添加;批量添加时有重复就忽略
下一篇: SpringBoot项目Shiro框架中session会话过期后自动跳转提示框
Hello Bug
博客等级 码龄8年 87粉丝 124原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Hello Bug

谢谢老板,老板大气,老板硬邦邦

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

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

打赏作者

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

抵扣说明:

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

余额充值