当前位置: 首页 > news >正文

更改了网站关键词后要怎么做/长尾关键词挖掘精灵

更改了网站关键词后要怎么做,长尾关键词挖掘精灵,网站怎么做gps定位,网络营销的特点有多选题在这篇文章中,我将详细介绍 PostgreSQL 中的公用表表达式(CTE)和窗口函数,帮助你理解如何使用它们进行复杂的数据分析。我将通过具体的示例来演示这些概念的实际应用,并在每个示例中提供详细的解释和注释。 1. 公用表…

在这篇文章中,我将详细介绍 PostgreSQL 中的公用表表达式(CTE)和窗口函数,帮助你理解如何使用它们进行复杂的数据分析。我将通过具体的示例来演示这些概念的实际应用,并在每个示例中提供详细的解释和注释。

1. 公用表表达式(CTE)

1.1 什么是 CTE?

公用表表达式(Common Table Expression,CTE)是一种在 SQL 查询中定义临时结果集的方式,可以在主查询中多次引用。

CTE 可以提高查询的可读性和结构性,尤其是在处理复杂的查询时。

使用 CTE,可以避免使用嵌套查询,从而使 SQL 代码更清晰。

1.2 CTE 的基本语法

CTE 的基本语法如下:

WITH cte_name AS (SELECT columnsFROM tableWHERE conditions
)
SELECT *
FROM cte_name;
  • WITH 关键字用于定义 CTE。
  • cte_name 是 CTE 的名称,可以在后续查询中使用。
  • CTE 内部的 SELECT 查询定义了临时结果集。

1.3 示例:使用 CTE 进行复杂查询

假设有一个名为 sales 的表,记录了销售数据,结构如下:

CREATE TABLE sales (id SERIAL PRIMARY KEY,        -- 唯一标识每一条销售记录product_name VARCHAR(100),    -- 产品名称sale_date DATE,               -- 销售日期amount DECIMAL,               -- 销售金额quantity INT                  -- 销售数量
);

插入一些示例数据:

INSERT INTO sales (product_name, sale_date, amount, quantity) VALUES
('Product A', '2023-01-01', 100.00, 1),
('Product B', '2023-01-02', 200.00, 2),
('Product A', '2023-01-03', 150.00, 1),
('Product C', '2023-01-04', 300.00, 3),
('Product B', '2023-01-05', 250.00, 1);
示例 1:计算每个产品的总销售额

想要计算每个产品的总销售额,可以使用 CTE 来先计算每个产品的销售额,然后再进行汇总。

WITH sales_summary AS (SELECTproduct_name,                -- 选择产品名称SUM(amount) AS total_sales    -- 计算每个产品的总销售额FROMsalesGROUP BYproduct_name                 -- 按产品名称分组
)
SELECTproduct_name,total_sales
FROMsales_summary                   -- 从 CTE 中查询结果
ORDER BYtotal_sales DESC;              -- 按总销售额降序排列

注释

  • 在 CTE sales_summary 中,使用 SUM(amount) 来计算每个产品的总销售额,并使用 GROUP BY 子句按 product_name 进行分组。
  • 主查询从 CTE 中获取结果,并根据 total_sales 降序排列,以便查看销售额最高的产品。

1.4 CTE 的递归查询

CTE 还支持递归查询,适用于层级结构的数据(如组织结构、分类等)。

示例 2:递归 CTE 示例

假设有一个员工表 employees,结构如下:

CREATE TABLE employees (employee_id SERIAL PRIMARY KEY,  -- 员工唯一标识employee_name VARCHAR(100),       -- 员工姓名manager_id INT                    -- 上级员工的 ID
);

插入一些示例数据:

INSERT INTO employees (employee_name, manager_id) VALUES
('Alice', NULL),  -- Alice 是顶层管理者,没有上级
('Bob', 1),      -- Bob 是 Alice 的下属
('Charlie', 1),  -- Charlie 也是 Alice 的下属
('David', 2),    -- David 是 Bob 的下属
('Eve', 2);      -- Eve 也是 Bob 的下属

想要查询所有员工及其上级,可以使用递归 CTE:

WITH RECURSIVE employee_hierarchy AS (SELECTemployee_id,               -- 选择员工 IDemployee_name,             -- 选择员工姓名manager_id,                -- 选择上级员工 ID0 AS level                  -- 级别,顶层管理者的级别为 0FROMemployeesWHEREmanager_id IS NULL         -- 从顶层管理者开始UNION ALLSELECTe.employee_id,            -- 选择下属员工 IDe.employee_name,          -- 选择下属员工姓名e.manager_id,             -- 选择下属的上级员工 IDeh.level + 1              -- 级别加 1FROMemployees eJOINemployee_hierarchy eh ON e.manager_id = eh.employee_id  -- 连接下属和上级
)
SELECTemployee_name,level
FROMemployee_hierarchy
ORDER BYlevel, employee_name;          -- 按级别和姓名排序

注释

  • 递归 CTE employee_hierarchy 的第一部分选择顶层管理者(没有上级的员工),并初始化级别为 0。
  • 第二部分通过 JOIN 连接员工表和 CTE,以查找每个员工的下属,并将级别加 1。
  • 最后,查询 CTE,返回员工姓名及其层级,并按层级和姓名排序。

2. 窗口函数

2.1 什么是窗口函数?

窗口函数是一种在结果集的每一行上执行计算的函数,它允许我们在不分组的情况下进行聚合计算。

窗口函数通常用于计算排名、移动平均、累计和等。

与普通的聚合函数不同,窗口函数不会减少结果集的行数。

2.2 窗口函数的基本语法

窗口函数的基本语法如下:

SELECT columns,window_function() OVER (PARTITION BY column ORDER BY column)
FROM table;
  • window_function() 是要使用的窗口函数,如 SUM()RANK()ROW_NUMBER() 等。
  • OVER 子句定义了窗口的分区和排序方式。
  • PARTITION BY 用于将结果集分成不同的组(类似于 GROUP BY),而 ORDER BY 用于在每个组内排序。

2.3 示例:使用窗口函数进行数据分析

示例 3:计算每个产品的销售排名

可以使用窗口函数来计算每个产品的销售排名。

SELECTproduct_name,SUM(amount) AS total_sales,             -- 计算每个产品的总销售额RANK() OVER (ORDER BY SUM(amount) DESC) AS sales_rank  -- 计算销售排名
FROMsales
GROUP BYproduct_name
ORDER BYsales_rank;                            -- 按销售排名排序

注释

  • 在这个查询中,SUM(amount) 计算每个产品的总销售额,并使用 RANK() 函数为每个产品分配一个排名,排名基于总销售额的降序。
  • 最后,结果按销售排名排序。
示例 4:计算累计销售额

还可以使用窗口函数计算累计销售额。

SELECTsale_date,product_name,amount,SUM(amount) OVER (ORDER BY sale_date) AS cumulative_sales  -- 计算累计销售额
FROMsales
ORDER BYsale_date;                             -- 按销售日期排序

注释

  • 在这个查询中,SUM(amount) OVER (ORDER BY sale_date) 计算截至每个销售日期的累计销售额。
  • 结果按销售日期排序,显示每个日期的销售额和累计销售额。

3. 综合示例:结合 CTE 和窗口函数

现在结合 CTE 和窗口函数进行一个更复杂的分析,计算每个产品的总销售额、排名以及累计销售额。

WITH sales_summary AS (SELECTproduct_name,SUM(amount) AS total_sales           -- 计算每个产品的总销售额FROMsalesGROUP BYproduct_name                        -- 按产品名称分组
)
SELECTproduct_name,total_sales,RANK() OVER (ORDER BY total_sales DESC) AS sales_rank,  -- 计算销售排名SUM(total_sales) OVER (ORDER BY total_sales DESC) AS cumulative_sales  -- 计算累计销售额
FROMsales_summary
ORDER BYsales_rank;                          -- 按销售排名排序

注释

  • 在这个综合示例中,首先使用 CTE sales_summary 计算每个产品的总销售额。
  • 然后在主查询中,使用窗口函数 RANK() 计算销售排名,并使用 SUM(total_sales) OVER (ORDER BY total_sales DESC) 计算累计销售额。
  • 最后,结果按销售排名排序,展示每个产品的总销售额、排名和累计销售额。

4. 总结

本文详细介绍了 PostgreSQL 中的公用表表达式(CTE)和窗口函数。通过具体的示例,实操展示了如何使用这些功能进行复杂的数据分析。

希望这篇文章能帮助你掌握 CTE 和窗口函数,可以帮助你编写更清晰、灵活的 SQL 查询,进行深入的数据分析。

相关文章:

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

在这篇文章中,我将详细介绍 PostgreSQL 中的公用表表达式(CTE)和窗口函数,帮助你理解如何使用它们进行复杂的数据分析。我将通过具体的示例来演示这些概念的实际应用,并在每个示例中提供详细的解释和注释。 1. 公用表…...

【min25筛】【CF2020F】Count Leaves

题目 定义 f ( n , 0 ) 1 f(n,0)1 f(n,0)1, f ( n , d ) ∑ k ∣ n f ( k , d − 1 ) f(n,d)\sum_{k|n}f(k,d-1) f(n,d)∑k∣n​f(k,d−1) 给出 n , k , d n,k,d n,k,d,你需要求出: ∑ i 1 n f ( i k , d ) m o d ( 1 0 9 7 ) \sum_{i1}^n f(i^k…...

【d57】【sql】1661. 每台机器的进程平均运行时间

思路 一方面考察自连接,另一方面考察group by 这里主要说明 group by 用法: 1.在 SQL 查询中,GROUP BY 子句用于将结果集中的行分组,目的通常就是 对每个组应用聚合函数(如 SUM(), AVG(), MAX(), MIN(), COUNT() 等…...

ArcGIS共享数据的最佳方法(不丢可视化、标注等各类显示信息一样带)

今天我们介绍一下ArcGIS数据共享的几个小妙招 我们时常要把数据发给对方,特别是很多新手朋友要将shp发给对方时只是发送了shp后缀的文件,却把shp的必要组成文件dbf、shx等等给落下了。 还有很多朋友给图层做好了符号化标注,但是数据一发给别…...

小程序this.getOpenerEventChannel()当前页面与navigateTo页面之间数据通信

this.getOpenerEventChannel() 是微信小程序中获取页面打开它的页面事件通道的方法。但是,这个方法只在页面是被wx.navigateTo打开的情况下才能使用。如果页面是通过其他方式打开的,比如wx.redirectTo,那么就无法使用这个方法。 解决方案&…...

调用飞书接口导入供应商bug

1、业务背景 财务这边大部分系统都是供应商项目,由于供应商的研发人员没有飞书项目的权限,涉及到供应商系统需求 财务这边都是通过多维表格进行bug的生命周期管理如图: 但多维表格没有跟飞书项目直接关联,测试组做bug统计的时候无…...

《深度学习》OpenCV 角点检测、特征提取SIFT 原理及案例解析

目录 一、角点检测 1、什么是角点检测 2、检测流程 1)输入图像 2)图像预处理 3)特征提取 4)角点检测 5)角点定位和标记 6)角点筛选或后处理(可选) 7)输出结果 3、邻域…...

golang grpc初体验

grpc 是一个高性能、开源和通用的 RPC 框架,面向服务端和移动端,基于 HTTP/2 设计。目前支持c、java和go,分别是grpc、grpc-java、grpc-go,目前c版本支持c、c、node.js、ruby、python、objective-c、php和c#。grpc官网 grpc-go P…...

基于小程序+Vue + Spring Boot的进销存库存出库入库统计分析管理系统

目录 一、项目背景及需求分析 1. 项目背景 2. 需求分析 二、系统架构设计 1. 技术选型 2. 模块划分 三、数据库设计数据库表结构 四、前端实现 五、后端实现 1. RESTful API设计 2. 数据库操作 六、安全性和性能优化 1. 安全性 2. 性能优化 七、测试与部署 1. …...

【数据结构与算法】时间复杂度和空间复杂度例题

文章目录 时间复杂度常数阶时间O(1)对数阶时间O(logN)线性阶时间O(n)线性对数阶时间O(nlogN)平方阶时间O(n*n) 空间复杂度常量空间O(1)线性空间O(n)二维空间O(n*n)递归空间 时间复杂度 常数阶时间O(1) 代码在执行的时候,它消耗的时间并不随着某个变量的增长而增长…...

停止模式下USART为什么可以唤醒MCU?

在MCU的停止模式下,USART之类的外设时钟是关闭的,但是USART章节有描述到在停止模式下可以用USART来对MCU进行唤醒: 大家是否会好奇在外设的时钟被关闭的情况下,USART怎么能通过接收中断或者唤醒事件对MCU进行唤醒的呢&#xff1…...

Web安全 - 路径穿越(Path Traversal)

文章目录 OWASP 2023 TOP 10导图定义路径穿越的原理常见攻击目标防御措施输入验证和清理避免直接拼接用户输入最小化权限日志监控 ExampleCode漏洞代码:路径穿越攻击案例漏洞说明修复后的安全代码代码分析 其他不同文件系统下的路径穿越特性Windows系统类Unix系统&a…...

JSR303微服务校验

一.创建idea 二.向pom.xml添加依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.7.RELEASE</version></parent><properties><java.vers…...

56. QTreeWidget的基本使用

1. 说明 在软件开发中会遇到将数据信息制作成一种树目录的形式进行展示,那么此时就可以借助QT提供的QTreeWidget控件来实现这种需求,本篇博客会做一个案例简要说明这个控件的基本使用方法,博客中代码能够实现的功能是将此项目代码所在文件夹中的内容展示出来,如下图所示:…...

领域偏移:协变量移位下的域自适应

现在我们将焦点转移到一种叫做协变量转移的扰动上。我们在一个分类或回归设置中工作&#xff0c;我们希望从x预测y&#xff0c;并假设p≈(y | x)和p∗(y | x)是相同的(标记函数在训练和测试之间不会改变) 假设 (Covariate Shift)。对于列车分布p~和检验分布p∗&#xff0c;我们…...

前端开发技术框架选型

一、引言 在前端开发领域&#xff0c;技术框架的选择对于项目的成功至关重要。一个优秀的前端框架不仅可以提高开发效率&#xff0c;还能确保项目的稳定性和可扩展性。而不同的框架具有不同的特点和优势&#xff0c;能够满足不同项目的需求。下面将对目前主流的前端开发技术框…...

/etc/init.d/mysql

Since you’ve installed MySQL from source, you’ll need to create a custom init script to manage the MySQL server (start, stop, status) similarly to a service. Here’s a simple init.d script template for MySQL that you can use. This script assumes MySQL is…...

Qt_线程介绍与使用

目录 1、QThread常用API 2、Qt线程安全 3、使用线程QThread 4、connect函数的第五个参数 5、Qt互斥锁 5.1 QMutexLocker 6、条件变量 7、信号量 结语 前言&#xff1a; 线程是应用程序开发非常重要的概念&#xff0c;在Qt中&#xff0c;用QThread类来实现多线程&a…...

通讯方面的数据,人工智能 机器学习的时候,因为数字都接近于一,数据归一化的一种方法,做了一个简化版本的Z-score标准化

这个表达式实现了一种形式的数据归一化&#xff0c;它将张量x中的每个元素除以x的标准差的估计值。这种处理方式可以使得变换后的数据具有单位标准差&#xff08;假设数据已经是零均值或者在计算过程中考虑了均值&#xff09;。具体来说&#xff0c;它是基于以下步骤进行的&…...

python itertools模块介绍

itertools 是 Python 内建的一个高效处理迭代器的模块&#xff0c;提供了创建复杂迭代器的函数工具。它包含一系列用于迭代、组合、排列、过滤等功能的迭代器构建工具&#xff0c;常用于数据处理和算法设计。下面是 itertools 模块中一些常见的函数介绍&#xff1a; 1. 无限迭…...

【分布式微服务云原生】5分钟深入剖析Kafka:Leader与Follower分区的秘密及负载均衡的艺术

深入剖析Kafka&#xff1a;Leader与Follower分区的秘密及负载均衡的艺术 摘要&#xff1a; Apache Kafka作为当前最流行的分布式流处理平台之一&#xff0c;其内部的分区机制和消费者组的负载均衡策略是实现高吞吐量和高可靠性的关键。本文将深入探讨Kafka中Leader分区与Follo…...

在线代码编辑器

在线代码编辑器 文章说明前台核心代码后台核心代码效果展示源码下载 文章说明 采用Java结合vue3设计实现的在线代码编辑功能&#xff0c;支持在线编辑代码、运行代码&#xff0c;同时支持导入文件&#xff0c;支持图片识别&#xff0c;支持复制代码&#xff0c;可将代码导出为图…...

深入了解 MPlayer:Linux 系统中的多功能多媒体播放器

文章目录 深入了解 MPlayer&#xff1a;Linux 系统中的多功能多媒体播放器一、MPlayer 的安装二、MPlayer 的基本使用三、MPlayer 音频功能详解1. 支持的音频格式2. 调整音频输出设备3. 使用音频滤镜和效果4. 音频输出格式转换5. 多声道与环绕声支持6. 音频控制&#xff1a;播放…...

Netty系列-7 Netty编解码器

背景 netty框架中&#xff0c;自定义解码器的起点是ByteBuf类型的消息, 自定义编码器的终点是ByteBuf类型。 1.解码器 业务解码器的起点是ByteBuf类型 netty中可以通过继承MessageToMessageEncoder类自定义解码器类。MessageToMessageEncoder继承自ChannelInboundHandlerAdap…...

OpenHarmony标准系统上实现对rk系列芯片NPU的支持(npu使用)

在上篇文章中&#xff0c;我们学习了移植rk的npu驱动到OpenHarmony提供的内核。本文我们来学习如何在OpenHarmony标准系统rk系列芯片如何使用npu OpenHarmony RK系列芯片运行npu测试用例 在移植npu驱动到OpenHarmony之后&#xff0c;来运行npu样例进行简单测试 1.O 测试准备…...

大表性能优化的关键技术

1 引言 在现代企业应用中,随着数据量的不断增长,大表的性能优化成为数据库管理的重要环节。本文将探讨大表性能优化的关键技术,包括索引优化、查询优化、分区分表、读写分离以及缓存策略等方面。通过综合运用这些技术,可以显著提升大表的处理效率和响应速度,确保系统的稳…...

广联达 Linkworks办公OA Service.asmx接口存在信息泄露漏洞

漏洞描述 广联达科技股份有限公司以建设工程领域专业应用为核心基础支撑&#xff0c;提供一百余款基于“端云大数据”产品/服务&#xff0c;提供产业大数据、产业新金融等增值服务的数字建筑平台服务商。广联达OA存在信息泄露漏洞&#xff0c;由于某些接口没有鉴权&#xff0c…...

如何成为成功的AI产品经理:经验与策略分享

引言 随着人工智能(AI)技术的迅猛发展,AI产品经理(AI PM)的角色变得越来越重要。Google AI产品负责人Marily Nika在最近的一次播客中分享了她在AI产品管理领域的宝贵经验和见解。本文将整理并总结她的核心内容,帮助有志于进入AI PM领域的人士了解如何准备、所需的核心技…...

spring loCDI 详解

文章目录 一、IoC & DI 基本知识1.1 IoC 的基本概念&#xff1a;1.2 IoC 的优势&#xff1a;1.3 DI 介绍&#xff1a; 二、IoC 详解2.1 Spring 容器&#xff1a;2.2 被存储 Bean 的命名约定&#xff1a;2.3 Bean 的存储方式&#xff1a;2.3.1 五大类注解&#xff1a;2.3.1.…...

遇到 Docker 镜像拉取失败的问题时该如何解决

遇到 Docker 镜像拉取失败的问题时&#xff0c;可以按照以下步骤进行排查和解决&#xff1a; 1. 检查网络连接 确保你的计算机可以访问互联网。尝试 ping 通 Docker Hub 或其他镜像仓库的域名&#xff1a; ping hub.docker.com2. 检查 Docker 服务状态 确保 Docker 服务正在…...