1、WITH语句原理:通用表表达式(Common Table Expressions)/CTEs,在大型查询中的辅助语句

WITH

name_for_summary_data AS (

SELECT Statement)

SELECT columns

FROM name_for_summary_data

WHERE conditions <=> (

SELECT column

FROM name_for_summary_data)

[ORDER BY columns]

CREATE TABLE w1(id int PRIMARY KEY, companyname text, city text, client int);

INSERT INTO w1 VALUES

(1,'c1','shanghai',2000),(2,'c1','beijing',1500),(3,'c1','shenzhen',1000),

(4,'c1','guangzhou',1000),(5,'c2','shanghai',1500),(6,'c2','beijing',3000),

(7,'c2','shenzhen',1000),(8,'c3','shanghai',1000),(9,'c3','beijing',1000),

(10,'c3','shenzhen',4000);

创建表格

WITH t AS (SELECT companyname,city,client FROM w1 WHERE companyname = 'c1')

SELECT SUM(client) FROM t;

先筛选出companyname为c1的临时表t,再对t进行检索(这里t并不存在,\d w2不返回内容)

等价于 → SELECT SUM(client) FROM w1 WHERE companyname = 'c1';

WITH t AS (SELECT companyname,client FROM w1 WHERE city = 'shanghai')

SELECT SUM(client) FROM t;

查询出上海市中c1,c2,c3三个公司的总客户数量

2、按条件移动数据

CREATE TAbLE w2(id int PRIMARY KEY, companyname text, city text, client int); 创建空表w2

WITH t AS (

DELETE FROM w1 WHERE client < 2000   条件,注意这里会修改w1

RETURNING * )                        RETURNING子句:返回数据

INSERT INTO w2(SELECT * FROM t);     将数据插入w2表格

按照条件将w1的数据移动到w2中

注意区别 → CREATE TABLE w2 AS SELECT * FROM w1 WHERE client < 2000; 这里不会改变w1数据

PostgreSQL-11-WITH语句的更多相关文章

  1. rehat7.X下postgresql 11编译安装

    文档目录结构: 一.准备 操作系统版本:rehat7.6 Postgresql:11.2 软件安装目录:/pgsql11/basedir 数据文件存放目录:/pgsql11data/ 11.2的下载地 ...

  2. PostgreSQL 11 Partitioning Improvements

    转自:https://pgdash.io/blog/partition-postgres-11.html PostgreSQL 11, due to be released later this ye ...

  3. Windows 2008R2 安装PostgreSQL 11.6

    前些天在CentOS 7.5 下安装了PostgreSQL 11.6.除了在无外网环境下需要另外配置之外,其他没有什么差别.今天主要写一下在Windows下面安装PostgreSQL的问题. 在官网看 ...

  4. Win10下载安装PostgreSQL 11.1

    下载地址:https://get.enterprisedb.com/postgresql/postgresql-11.1-1-windows-x64.exe Installation Director ...

  5. 049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句

    049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句 本文知识点:break语句 break语句 break语句前情回顾 1.swi ...

  6. 基于Arcgis Engine 10.2(C#)+PostgreSQL 11(Postgis 3)+pgRouting 3.0实现使用数据库进行路径规划

    前言:最近在(被迫)使用ArcGIS Engine10.2(.NET平台)进行二次开发(桌面应用),因为想做一个最短路径查询的功能,而arcgis的网络分析又比较麻烦,于是想到了使用Postgis.但 ...

  7. CentOS7(64) yum安装、配置PostgreSQL 11

    一.安装postgresql11 1.Install the repository RPM: 添加RPM yum install https://download.postgresql.org/pub ...

  8. PostgreSQL的SQL语句中的双引号引发的问题

    最近开发一个WEB的ETL工具需要用到不同的数据源.第一次用POSTGRESQL发现一个双引号引发的问题: 标准的SQL是不区分大小写的.但是PostgreSQL对于数据库中对象的名字允许使用支持大小 ...

  9. 阿里云服务器 centos 7 安装postgresql 11

    Postgresql简介 官方网站:https://www.postgresql.org/ 简介参考zhihu文章 https://www.zhihu.com/question/20010554 关于 ...

  10. 3.11 T-SQL语句

    T-SQL语句 1.创建表create table Car     --创建一个名字是Car的表-- ( Code varchar(50) primary key, --第一列名字是Code 数据类型 ...

随机推荐

  1. 关于AngularJs中监听事件及脏循环的理解

    可能很多刚入行或者刚学习的前端对于AngularJs中的一些事件或者概念感觉不理解或者没有思路,今天让我们一起来剖析一下AngularJs中的一些事件. AngularJs中对于的监听事件会用到一个s ...

  2. js 分享代码--完整示例代码

    <div class="bdsharebuttonbox" data-tag="share_1"> <a class="bds_ms ...

  3. IDEA 设置背景颜色及字号

    intellij IDEA 设置背景颜色   File--> Settings 2. Appearance & Behavior --> Appearance 设置边框背景颜色 3 ...

  4. CSS3:CSS 参考手册

    ylbtech-CSS:CSS 参考手册 1.返回顶部 1. W3School 的 CSS 参考手册定期通过所有主流浏览器进行测试. CSS 属性 CSS 属性组: 动画 背景 边框和轮廓 盒(框) ...

  5. Owin asp.net 脱离 IIS

    http://www.cnblogs.com/jesse2013/p/owin-webserver.html

  6. C# 外界调用方法是 方法名是string类型的解决方法

  7. javamail - 发件、收件(SSL连接)

    需要的包:mail.jar  jsse.jar(说明:jsse.jar是jre自带的,如果jdk1.5及以下需要Java Activation Framework框架的activation.jar) ...

  8. npm安装appium server路过的坑

    1.因为appium服务器是用node.js开发的,所以第一步要安装nodejs. 安装后,系统默认配置的环境变量在C盘的用户目录下,为了避免以后下载的包都放在系统盘下, 配置npm下载的包存放目录和 ...

  9. Flutter实战视频-移动电商-63.购物车_详细页显示购物车商品数量

    63.购物车_详细页显示购物车商品数量 购物车的图标嵌套在statck组件里面 外层套了一个stack组件 数量我们需要用Provide 返回一个container来做样式 气泡效果,中间是个数字外面 ...

  10. 3-8 & 3-9Unicode 编码

    3-9Unicode 编码 主要支持英文字母和一些特殊字符,中文不支持, 为了支持世界上所有的字符集 就是Unicode编码的出现 char c='\u005d';表示十六进制的. c表示一个尖括号: