with recursive 则是一个递归的查询子句,他会把查询出来的结果再次代入到查询子句中继续查询。

with recursive d(n, fact) as (
values (1,2)
union all #合并
select n+1, (n+1)*fact from d where n < 5)
SELECT * from d;

递归过程如下:
n=1 fact=2
n=1,n<5: n=1+1=2,fact=(1+1)*2=4
n=2,n<5:n=2+1=3,fact=(2+1)*4=12
n=3,n<5:n=3+1=4,fact=(3+1)*12=48
n=4,n<5:n=4+1=5,fact=(4+1)*48=240
n=5 n>=5==stop

with recursive d(n, fact) as (
values (1,2)
union all
select n+2, (n+1)*fact from d where n < 5)
SELECT * from d;


递归过程如下:
n=1 fact=2
n=1,n<5: n=1+2=3,fact=(1+1)*2=4
n=3,n<5:n=3+2=5,fact=(3+1)*4=16
n=5 n>=5==stop

with recursive d(n, fact) as (
values (1,2)
union all
select n+2, (n+1)*fact from d where n < 5)
select sum(fact) from d;


sum(fact)=2+4+16=22

with recursive d(n, fact) as (
values (1,2)
union all
select n+2, (n+1)*fact from d where n < 5)
select sum(n) from d;

sum(n)=1+3+5=9

select * from company;

with recursive t(n) as (values (10)union allselect salary from company where salary < 20000
)
select  * from t;

with recursive t(n) as (values (10)union allselect salary from company where salary < 20000
)
select  sum(n) from t;

with recursive用法相关推荐

  1. SQL中with recursive用法案例详解

    SQL提供了递归查询,可将当前查询结果作为下一次的查询集合进行再次查询,最后得到我们想要的结果. 关键字 with recursive 准备 假设我们有一张机构表org,如下: 列名 描述 id 机构 ...

  2. mysql 递归函数with recursive的用法

    AS 用法: AS在mysql用来给列/表起别名. 有时,列的名称是一些表达式,使查询的输出很难理解.要给列一个描述性名称,可以使用列别名. 要给列添加别名,可以使用AS关键词后跟别名 例子1: SE ...

  3. with recursive递归函数用法

    首先了解with用法,with相当于对sql的执行结果临时起一个别名,以便于之后的select使用. with recursive tablename([col1]) as ( SQL ) 这里目的是 ...

  4. SQL:With recursive 递归用法

    With Recursive as 有两种递归字段n的声明写法,第一种是在with- as 中声明需要递归的字段,第二种是在sql语句中第一段的初始值内声明变量. WITH RECURSIVE cte ...

  5. 转 mac svn用法

    mac svn 删除.svn隐藏文件的命令 打开终端,进到所在的目录,然后出入一下代码 find . -name ".svn" | xargs rm -Rf 1.将文件checko ...

  6. Python爬虫利器之Beautiful Soup的全世界最强用法 五百行文章!

    0. 前言 爬虫是一个非常有意思的东西,比如自己做的一个网页上面什么数据都没有就可以爬虫别人的 然后进行去重 数据分析等等 在这里因为爬虫涉及到的方面非常多 1. Beautiful Soup的简介 ...

  7. linux写文本命令,一天一个shell命令 linux文本操作系列-chmod命令用法

    先来熟悉下权限,以上一个例子comm下的文档为例 $ls -l -rw-rw-r-- 1 yjplxq yjplxq   36  7月 30 22:40 A.txt -rw-rw-r-- 1 yjpl ...

  8. wget 命令用法详解

    wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能和特点: (1)支持断点下传功能:这一点,也是网络蚂蚁和F ...

  9. Java 中的 XML:Java 文档模型的用法

    Java 中的 XML:Java 文档模型的用法 英文原文 内容: 代码对比 DOM JDOM dom4j Electric XML XPP 结束语 下一次... 参考资料 关于作者 对本文的评价 相 ...

最新文章

  1. 屏蔽Drupal中的“Notice: Undefined index”警告
  2. Java Selenium起步
  3. UA MATH574M 统计学习V Variable Selection简介
  4. 2019招商银行M-Geeker线上比赛题解析
  5. 初识Docker-Docker的安装
  6. 线性一致性理解Linearizability
  7. navicat使用触发器
  8. Android资源文件在配置文件中的使用
  9. 项目实战,平均负载过高,最后发现却是这个搞鬼
  10. java mvc mvvm_从MVC到MVVM(为什么要用vue)
  11. [diy-windows系统] Windows下dism 集成系统补丁、驱动
  12. PTA_机工士姆斯塔迪奥
  13. 机器学习(线性回归实训)------波士顿房价
  14. 卸载vivo手机自带的应用程序
  15. 论一个X倒下了千千万万个X站起来了
  16. 架构师如何设计架构,架构师的架构思路
  17. 中学计算机课程课时,高中信息技术教案word操作(共5份8课时
  18. 2013年H1B携H4签证
  19. LINUX命令(1)-创建文件
  20. 去后厂村开游戏厅吧!基于PP-TinyPose的简易体感游戏开发框架

热门文章

  1. 淘宝、飞猪、闲鱼全都挂了!阿里程序员要被祭天了?
  2. 2010年安防企业与事件盘点
  3. 西瓜书重温(四): 决策树手推版
  4. 程序员面试笔试宝典学习记录(一)(常见面试笔试题目)
  5. pythonb超分辨成像_深度原理与框架-图像超分辨重构-tensorlayer(示例代码)
  6. linux qt5.7下打地鼠源程序,QT实现简单打地鼠游戏
  7. 【论文阅读】Automatic Updating of Land Cover Maps in Rapidly Urbanizing Region
  8. 网上看到一个提供WebService的地方,如果作webService测试,不妨试试
  9. 2017-2018-2 20179305《网络攻防技术》第二周作业
  10. JAVA基础 - 数组中有没有length()这个方法?String中有没有 length()这个方法?