PGSQL基本使用

ops/2025/3/16 0:26:28/

PGSQL基本使用

文章目录

  • PGSQL基本使用
  • 日期转换
    • 长度不够补数
    • 获取上下行
    • 取连续的开始和结束的值


日期转换

格式说明
YYYY
MM
DD
hh2424小时制
mi分钟
ss
sql">-- 日期字符串转指定日期字符串
-- 20250101123000 转为 2025-01-01 12:30:00
select to_char(to_timestamp('20250101123000','YYYYMMDDhh24miss'),'YYYY-MM-DD hh24:mi:ss') as t;

长度不够补数

不足前面补数

sql">-- 得到字符串 '09300000'
select lpad(cast(9300000 as text),8,'0') as t;

不足前面补数

sql">-- 得到字符串 '15300000'
select lpad(cast(153000 as text),8,'0') as t;

获取上下行

获取上一行

sql">-- 第一行 pre_name 为 nullselect *,lag(name) over ( order by rn) as pre_namefrom table-- 第一行 pre_name 为 ''
--说明: 1,第一行, '' 为第一行的值select *,lag(name,1,'') over ( order by rn) as pre_namefrom table

获取下一行

sql">-- 最后一行 pre_name 为 nullselect *,lead(name) over ( order by rn) as pre_namefrom table-- 第一行 pre_name 为 ''
--说明: 1,最后一行, '' 为最后一行的值select *,lead(name,1,'') over ( order by rn) as pre_namefrom table

取连续的开始和结束的值

同一个账户,订单编号需要去除,5,9 。计算订单编号连续

sql">-- 基础数据
with base as (select  1 as order_num, 'A01' as acct_idunion all select  2 as order_num, 'A01' as acct_idunion all select  3 as order_num, 'A02' as acct_idunion all select  4 as order_num, 'A02' as acct_idunion all select  5 as order_num, 'A02' as acct_idunion all select  6 as order_num, 'A02' as acct_idunion all select  7 as order_num, 'A01' as acct_idunion all select  8 as order_num, 'A01' as acct_idunion all select  9 as order_num, 'A01' as acct_idunion all select  10 as order_num, 'A01' as acct_idunion all select  11 as order_num, 'A01' as acct_id),-- 根据acct_id分组,根据order_num排序
base_order as (select *, row_number() over (partition by acct_id order by order_num) as rn from base
),
-- 获取上下行的rn
-- lag(rn,1,null) 表示第一行的 rn值为空
-- lead(rn,1,null) 表示最后一行的 rn值为空
base_rn as (
select *,lag(rn,1,null) over (partition by acct_id order by order_num) as pre_rn,lead(rn,1,null) over (partition by acct_id order by order_num) as next_rn
from base_order
where order_num != 5 and order_num != 9
),
-- 计算acct_id连续的 order_num
base_link as (
select *,case when pre_rn is null or pre_rn + 1 != rn then  order_num else null end as start_order_num, /**连续的开始*/case when next_rn is null or next_rn -1 != rn then order_num else null end as end_order_num, /**连续的结束*/sum(case when pre_rn is null or pre_rn + 1 != rn then 1 else 0 end) over (partition by acct_id order by order_num) as link_cnt /**连续的分为一组*/
from base_rn
)
-- 获取连续的开始订单编号和对应的结束订单编号
select max(start_order_num) as start_order_num,max(end_order_num) as end_order_num, acct_id
from base_link
group by acct_id, link_cnt

得到结果

start_order_numend_order_numacct_id
12A01
34A02
66A02
78A01
1011A01

http://www.ppmy.cn/ops/166070.html

相关文章

Android Studio搭建环境并运行项目

参考: android studio开发环境搭建全过程_androidstudio 搭建开发环境-CSDN博客 Android Studio 开发环境搭建与项目结构认识 1、下载Android Studio 和Java JDK 并配置 (安装教程看百度),我这里使用的是Android Studio 2024.01版…

【零基础入门unity游戏开发——进阶篇】Marhf和Math的使用

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…

IDEA 创建SpringCloud 工程(图文)

创建父工程 打开IDEA,【New Project】新建一个Spring Boot 项目。 选择【Spring Web】依赖之后【Create】。 删除【src文件夹】以及【mvn开头文件】。 在pom文件中增加【packaging 标签】。 创建子工程 在父工程中,【New】→【Module】。 也同样…

ArcGIS助力水文分析:数据处理、地图制作与流域特征提取

在水文水环境保护中,对于信息的采集、处理和分析是关键步骤。水文水环境及其相关数据均具有空间分布特征,传统的方法难以发挥作用。地理信息系统(GIS)强大的空间数据管理和分析功能,在空间信息处理上有独到的优势&…

大模型巅峰对决:DeepSeek vs GPT-4/Claude/PaLM-2 全面对比与核心差异揭秘

喜欢可以到主页订阅专栏 目录 技术架构对比性能表现与基准测试多模态与多语言能力推理效率与成本分析开源生态与行业适配应用场景与案例研究未来发展与技术趋势代码实现与调用示例1. 技术架构对比 DeepSeek:动态稀疏激活的混合专家系统(MoE) 动态路由机制:每个输入仅激活…

【每日学点HarmonyOS Next知识】tab对齐、相对布局、自定义弹窗全屏、动画集合、回到桌面

1、HarmonyOS Tabs 是否能支持 tabbar 居左对齐&#xff1f; 当前方案为自定义tabbar实现&#xff0c;示例demo&#xff1a; Entry Component struct TabsExample {State tabArray: Array<number> [0, 1,2]State focusIndex: number 0State pre: number 0State inde…

Manus全球首个通用Agent,Manus AI:Agent应用的ChatGPT时刻

文章目录 前言Manus AI: 全球首个通用AgentManus AI: 技术架构与创始人经历AI Agent的实现框架与启示AI Agent的发展预测行业风险提示 前言 这是一篇关于Manus AI及其在通用人工智能领域的应用和前景的报告&#xff0c;主要介绍了Manus AI的产品定位、功能、技术架构、创始人经…

数据分析项目:基于LSTM的微博评论情感分析

一、引言 随着社交媒体的蓬勃发展&#xff0c;微博等平台积累了海量的用户生成内容&#xff0c;其中蕴含着丰富的用户情感信息。对这些情感信息进行分析&#xff0c;能够帮助我们更好地理解公众舆论、品牌口碑以及用户需求等。本项目旨在构建一个基于长短期记忆网络&#xff0…