首页 > 数据库 >PostgreSql

PostgreSql

时间:2023-07-23 15:33:57浏览次数:42  
标签:PostgreSql region sales VALUES select WHERE SELECT

pgAdmin :是一款专门针对PostgreSQL数据库的客户端管理软件,该版本在pgAdmin 3的基础上做了较大的架构变化,由之前的CS架构变更为基于浏览器的BS架构。

WITH查询(通用表表达式)

WITH通用表表达式可以认为是定义在一个查询中的临时表。

WITH语句的结构分为WITH子句中的辅助语句和WITH子句中附加到的初级语句。

辅助语句和初级语句可以是一个SELECT, INSERT, UPDATEDELETE

WITH regional_sales AS (
        SELECT region, SUM(amount) AS total_sales
        FROM orders
        GROUP BY region
     ), top_regions AS (
        SELECT region
        FROM regional_sales
        WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales)
     )
SELECT region,
       product,
       SUM(quantity) AS product_units,
       SUM(amount) AS product_sales
FROM orders
WHERE region IN (SELECT region FROM top_regions)
GROUP BY region, product;

上述的例子中定义了regional_sales和top_regions两个辅助语句。

regional_sales的输出用于top_regions,top_regions的输出被初级语句使用。

WITH RECURSIVE 递归查询

使用RECURSIVE,一个WITH查询可以引用它自己的输出。

递归计算1加到100。

WITH RECURSIVE t(n) AS (
    VALUES (1)
  UNION
    SELECT n+1 FROM t WHERE n < 100
)
SELECT sum(n) FROM t;

VALUES (1)相当于select * from (VALUES (1)) as t(n)

分析:

  • WITH子句第一次输出:相当于执行
select * from (VALUES (1)) as t(n)
union
select n+1 from (VALUES (1)) as t(n) WHERE n < 100

结果:

  • WITH子句第二次输出:相当于执行
select * from (VALUES (1)) as t(n)
union
SELECT n+1 FROM 
(
	select * from (VALUES (1)) as t(n)
	union
	select n+1 from (VALUES (1)) as t(n) WHERE n < 100
)t 
WHERE n < 100

一直到不满足n<100条件,递归结束。WITH子句输出1到100的数据。

当使用递归查询时,确保查询的递归部分最终不会返回元组,不然会造成死循环

标签:PostgreSql,region,sales,VALUES,select,WHERE,SELECT
From: https://www.cnblogs.com/1963942081zzx/p/17575064.html

相关文章

  • debezium同步postgresql数据至kafka
    0实验环境全部部署于本地虚拟机debeziumdocker部署postgresql、kafka本机部署1postgresql1.1配置设置postgres密码为123仿照example,创建databasepostgres,schemeinventory,tablecustomers因为postgres用户有replication权限,所以可以直接使用修改postgresql.conf文......
  • 如何测量网络对PostgreSQL性能的影响
    在PostgreSQL数据库和应用服务器之间,通常会有许多基础设施层。最常见的有连接池、负载均衡器、路由器、防火墙等。我们经常会忘记或想当然地认为网络hop以及其对整体性能造成的额外开销。但在很多情况下,这可能会导致严重的性能损失和整体吞吐量下降。如何检测和测量影响目前还没......
  • Postgresql日志归档、复制槽概念
    问题1数据日志什么时候归档?其实这个问题是比较需要明白的,到底日志在正常的情况下,什么时候才能归档,到底条件是什么,要开启postgresql的日志的归档的前提条件,主要需要配置1wal_level=replica(或logical)2archive_mode=on3archive_command='test!-......
  • PostgreSQL 子查询
    子查询(Subquery)是指嵌套在其他SELECT、INSERT、UPDATE以及DELETE语句中的查询语句。子查询的作用与多表连接查询有点类似,也是为了从多个关联的表中返回或者过滤数据。例如,我们想要知道哪些员工的月薪大于平均月薪,可以通过子查询实现:SELECTe.first_name,e.last_name,e.salary......
  • 【865】PostgreSQL相关
    ref:PostgreSQL教程正常下载安装,mac安装路径为/Applications/PostgreSQL15/pgAdmin4.app打开pgAdmin4.app新建的table位置 ......
  • PostgreSQL explain使用
    1.概述PostgreSQL为每个收到的查询产生一个执行计划,这个执行计划是一个非完全的二叉树。通过这个执行计划,DBA或者应用人员可以清晰的了解到某个SQL在数据库中的预估的执行情况以及实际的执行情况,也能根据执行计划中资源的消耗判断性能的瓶颈点,从而对该SQL进行有针对性的优化。下......
  • postgresql-备份恢复
    1、逻辑备份恢复pg_dump/pg_restore命令备份恢复对数据库或表备份恢复##备份指定的数据库test$pg_dump-Upostgres-W-h192.168.3.122-p1921test>/pgdata/dumpbak/test.sql##备份指定库中的某个表t1$pg_dump-Upostgres-W-h192.168.3.122-p1921test......
  • 数据库PostgreSQL PG 字符串拼接,大小写转换,substring
    前言PostgreSQL数据库简称pg数据库。本文主要介绍使用pg数据库时,字符串的一些常用操作。例如:多个字符串如何连接在一起,字符串如何大小写转换,删除字符串两边的空格,查找字符位置,查找子字符串等。一、多个字符串如何连接,拼接?pg的字符串连接使用||,注意不是+1.将2个字符串hello......
  • postgreSQL数据库远程连接配置
    1、修改允许远程访问配置信息进入Windows系统下PostgreSQL安装目录下的data目录中(1)修改pg_hba.conf中,ipv4下面添加 (2)修改postgresql.conf文件中的监听设置将listen_addresses=’localhost’前面的‘#’删掉,将port=5432前面的‘#’删掉将监听修改为listen_addresses='*';......
  • postgresql-基本管理
    查看控制文件内容$pg_controldatapg_controlversionnumber:1201Catalogversionnumber:201909212Databasesystemidentifier:7253057961538375212Databaseclusterstate:inproduction....Sizeofalarge-ob......