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

做门户网站预算国际新闻最新消息战争

做门户网站预算,国际新闻最新消息战争,网站建设相关技术方案,芜湖室内设计公司排名👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL常用函数速查表:从数据清洗到分析的全场景工具集引言一、字符串处理函数1.1 基础操作函数1.2 模式匹配函数(正则表达式) 二、数…

👉 点击关注不迷路
👉 点击关注不迷路
👉 点击关注不迷路


文章大纲

  • PostgreSQL常用函数速查表:从数据清洗到分析的全场景工具集
    • 引言
    • 一、字符串处理函数
      • 1.1 基础操作函数
      • 1.2 模式匹配函数(正则表达式)
    • 二、数值计算函数
      • 2.1 基础运算函数
      • 2.2 统计相关函数
    • 三、日期与时间函数
      • 3.1 基础日期操作
      • 3.2 日期算术运算
    • 四、聚合函数与窗口函数
      • 4.1 聚合函数
      • 4.2 窗口函数
    • 五、类型转换函数
    • 六、条件判断函数
    • 结语

在这里插入图片描述
我将围绕《PostgreSQL数据分析实战》附录-A 的内容,以常用函数分类的形式,详细介绍各函数的描述、语法、示例及返回值,通过表格和具体数据让内容更清晰易懂,为读者呈现一份实用的速查表博客。

PostgreSQL常用函数速查表:从数据清洗到分析的全场景工具集

引言

在PostgreSQL数据分析场景中,熟练掌握内置函数是提升数据处理效率的关键。

  • 本文基于《PostgreSQL数据分析实战:从数据清洗到可视化全流程》附录A,整理了字符串处理、数值计算、日期操作、聚合统计等核心功能模块的常用函数,结合具体业务场景示例,帮助读者快速掌握函数应用技巧。
  • 所有示例基于以下测试表结构
CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50),salary NUMERIC(10,2),hiredate DATE,department VARCHAR(30)
);-- 示例数据
INSERT INTO employees VALUES
(1, 'Alice Smith', 85000.00, '2020-01-15', 'Engineering'),
(2, 'Bob Johnson', 72000.50, '2021-03-20', 'Marketing'),
(3, 'Charlie Brown', 68000.75, '2022-05-25', 'Sales');

一、字符串处理函数

字符串函数是数据清洗阶段的核心工具,常用于处理不规范文本、提取关键信息或拼接输出内容

1.1 基础操作函数

函数名描述语法示例返回值
CONCAT拼接字符串CONCAT(str1, str2, …)CONCAT(‘Hello’, ’ ', ‘World’)“Hello World”
SUBSTRING提取子字符串SUBSTRING(str FROM start [FOR length])SUBSTRING(‘PostgreSQL’, 3, 4)“stgr”
TRIM去除首尾指定字符(默认空格)TRIM([LEADING/TRAILING/BOTH] [chars] FROM str)TRIM(’ data ')“data”
REPLACE替换指定子串REPLACE(str, old_str, new_str)REPLACE(‘a_b_c’, ‘_’, ‘-’)“a-b-c”
UPPER/LOWER转换大小写UPPER(str)/LOWER(str)UPPER(‘hello’)“HELLO”

1.2 模式匹配函数(正则表达式)

函数名描述语法示例返回值
REGEXP_MATCHES返回匹配正则的所有子串REGEXP_MATCHES(str, pattern, [flags])REGEXP_MATCHES(‘a1b2c3’, ‘\d’){1,2,3}(数组)
REGEXP_REPLACE使用正则替换子串REGEXP_REPLACE(str, pattern, replacement, [flags])REGEXP_REPLACE(‘abc123’, ‘\d+’, ‘NUM’)“abcNUM”
SPLIT_PART按分隔符拆分字符串并返回指定部分SPLIT_PART(str, delimiter, part)SPLIT_PART(‘a,b,c’, ‘,’, 2)“b”
  • 业务场景示例:清洗员工姓名格式
-- 去除姓名前后空格并统一首字母大写
UPDATE employees SET name = INITCAP(TRIM(name));
-- 提取姓名中的姓氏(假设姓名格式为“名 姓”)
SELECT name, SPLIT_PART(name, ' ', 2) AS last_name FROM employees;

在这里插入图片描述

二、数值计算函数

数值函数用于数据转换、统计计算和数学运算,支持整数、浮点数和精确数值类型。

2.1 基础运算函数

函数名描述语法示例返回值
ROUND四舍五入ROUND(num [, decimal_places])ROUND(123.456, 2)123.46
CEIL/FLOOR向上/向下取整CEIL(num)/FLOOR(num)CEIL(3.14)4
ABS绝对值ABS(num)ABS(-100)100
MOD取模运算MOD(num, divisor)MOD(7, 3)1
POWER幂运算POWER(base, exponent)POWER(2, 3)8

2.2 统计相关函数

函数名描述语法示例返回值
AVG平均值AVG(column)AVG(salary)75000.42(假设)
SUM求和SUM(column)SUM(salary)225001.25
COUNT计数COUNT([DISTINCT] column)COUNT(DISTINCT department)3

业务场景示例:计算员工薪资等级

-- 将薪资四舍五入到千位并分类
SELECT name, salary, CASE WHEN ROUND(salary / 1000) >= 80 THEN '高薪'WHEN ROUND(salary / 1000) >= 70 THEN '中等'ELSE '基础'END AS salary_level
FROM employees;

在这里插入图片描述

三、日期与时间函数

日期函数在时间序列分析、数据过滤和趋势计算中不可或缺,支持DATE、TIME、TIMESTAMP类型。

3.1 基础日期操作

函数名描述语法示例返回值
CURRENT_DATE获取当前日期CURRENT_DATECURRENT_DATE2025-05-14(当前日期)
AGE计算时间间隔AGE(end_date, start_date)AGE(hiredate, ‘2020-01-01’)间隔年数/月数/天数
EXTRACT提取日期部分EXTRACT(part FROM date)EXTRACT(YEAR FROM hiredate)2020
DATE_PART等价于EXTRACTDATE_PART(part, date)DATE_PART(‘month’, hiredate)1
DATE_TRUNC截断日期到指定精度DATE_TRUNC(part, date)DATE_TRUNC(‘year’, hiredate)2020-01-01

3.2 日期算术运算

操作符描述语法示例返回值
+日期加天数/时间间隔date + INTERVAL 'n day'hiredate + INTERVAL ‘1 year’2021-01-15
-日期减天数/计算时间差date - INTERVAL 'n day'CURRENT_DATE - hiredate间隔天数
BETWEEN判断日期是否在区间内date BETWEEN start AND endhiredate BETWEEN ‘2020-01-01’ AND ‘2022-12-31’TRUE/FALSE
  • 业务场景示例:计算员工工龄
SELECT name,EXTRACT(YEAR FROM AGE(hiredate)) AS years_of_service,  -- 完整工龄(年)(EXTRACT(YEAR FROM CURRENT_DATE) * 12 + EXTRACT(MONTH FROM CURRENT_DATE))  -- 当前总月数- (EXTRACT(YEAR FROM hiredate) * 12 + EXTRACT(MONTH FROM hiredate))         -- 入职总月数AS months_worked  -- 累计完整月份数
FROM employees;

在这里插入图片描述

四、聚合函数与窗口函数

聚合函数用于分组统计,窗口函数则在保留行级别数据的同时进行分组计算,常用于排名、累计值等场景

4.1 聚合函数

函数名描述语法示例返回值
COUNT统计行数COUNT(*) / COUNT(column)COUNT(*) FROM employees3
SUM求和SUM(salary)SUM(salary)225001.25
AVG平均值AVG(salary)AVG(salary)75000.42
MAX/MIN最大值/最小值MAX(salary)/MIN(salary)MAX(salary)85000.00

4.2 窗口函数

函数名描述语法示例返回值
ROW_NUMBER()行号排序(无并列)ROW_NUMBER() OVER (ORDER BY salary DESC)按薪资降序排名1,2,3
RANK()排名(并列同号,跳过后续)RANK() OVER (ORDER BY salary DESC)薪资排名(可能有并列)1,2,2
DENSE_RANK()密集排名(并列同号,不跳过)DENSE_RANK() OVER (ORDER BY salary DESC)连续排名1,2,2
SUM() OVER()分组累计和SUM(salary) OVER (PARTITION BY department ORDER BY hiredate)部门内按入职时间累计薪资累计值序列
  • 业务场景示例:查询各部门薪资排名
SELECT name, department, salary,RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS dept_rank
FROM employees;

在这里插入图片描述

五、类型转换函数

类型转换函数用于处理不同数据类型间的兼容问题,确保计算和存储的正确性。

函数名描述语法示例返回值
CAST显式类型转换CAST(expr AS type)CAST(‘123’ AS INT)123
::类型转换操作符expr::type‘2020-01-01’::DATE日期类型值
TO_CHAR日期/数值转字符串TO_CHAR(date, format)TO_CHAR(hiredate, ‘YYYY-MM-DD’)“2020-01-15”
TO_NUMBER字符串转数值TO_NUMBER(str, format)TO_NUMBER(‘12,345’, ‘99G999’)12345
  • 业务场景示例:格式化薪资输出
SELECT name, TO_CHAR(salary, '$999,999.00') AS formatted_salary
FROM employees;

在这里插入图片描述

六、条件判断函数

条件函数用于根据不同逻辑分支返回对应结果,是数据清洗和业务逻辑实现的核心。

函数名描述语法示例返回值
CASE WHEN多条件分支判断CASE WHEN condition THEN result [ELSE default] ENDCASE WHEN salary > 80000 THEN ‘Senior’ ELSE ‘Junior’ END“Senior"或"Junior”
COALESCE返回第一个非空值COALESCE(expr1, expr2, …)COALESCE(NULL, ‘Default’)“Default”
NULLIF相等则返回NULL,否则返回原值NULLIF(expr1, expr2)NULLIF(10, 10)NULL
  • 业务场景示例:处理缺失部门数据
UPDATE employees SET department = COALESCE(department, 'Unknown');
  • 快速查询各函数帮助文档
-- 输入 \h 函数名 查看帮助(以 CONCAT 为例):
\h CONCAT-- \df 是 psql 的元命令,用于列出数据库中所有函数(可结合通配符过滤)。
\df CONCAT  -- 查看所有名为 CONCAT 的函数-- 快速查询各函数帮助文档
-- 示例:查询CONCAT函数用法
-- 查询 CONCAT 函数的元数据
SELECT proname AS 函数名,pg_get_function_arguments(oid) AS 参数,pg_typeof(prorettype) AS 返回类型,prosrc AS 函数定义(部分)
FROM pg_proc 
WHERE proname = 'concat';

结语

本文整理的PostgreSQL常用函数覆盖了数据清洗、转换、分析和可视化的全流程场景

  • 建议读者通过实际数据集练习函数组合使用,例如结合正则表达式清洗不规范文本,再通过窗口函数进行分组排名,最终用TO_CHAR函数格式化输出结果
  • 后续文章将深入探讨如何利用这些函数构建复杂数据分析模型,敬请关注!

以上博客全面梳理了PostgreSQL常用函数。

  • 你若觉得某些函数介绍不够详细,或想增加其他类型函数,欢迎告诉我。
http://www.dtcms.com/wzjs/599525.html

相关文章:

  • 网站图片优化工具云商城是什么
  • 电视直播网站开发商标logo设计免费生成
  • 互动营销型网站建设怎么做盗文网站
  • 平湖公司做网站17网一起做网站广州
  • 学校二级网站建设自查情况建个静态网站
  • dede网站搬家 空间转移的方法南昌网站建设公司如何
  • 上海网站优化案例网站建设为什么学flash
  • 高端快速建站杭州网站建设有限公司
  • 网站建设资质证书什么是网络营销请举几个例子说明
  • 企业官方网站怎么建设学校门户网站的网站建设方案
  • 百度网站架构营销网站制作公司
  • 1020美金等于多少欧元信阳网站seo
  • 深圳做男装什么网站容易找工vp(永久免费)加速器下载
  • 您的网站未备案wordpress图片编辑插件
  • 吉林省建设厅官方网站办事指南做包装盒效果图的网站
  • 免备案网站建站上海响应式建站
  • 江西昌宇建设工程公司网站不能制作网页的软件是
  • centos wordpress 建站教程深圳高端vi设计公司
  • 网站建设中左对齐上海建筑设计院待遇怎么样
  • 中山网站关键字优化thinkphp制作网站开发
  • 企业网站创建小结新浪推网站
  • 如何查询网站打开速度变慢广州做蛋糕的网站
  • 建设单位网站需求报告广告喷绘制作公司介绍
  • 哪些网站是中文域名wordpress关闭略缩图
  • 敬请期待图片素材荆州seo
  • wordpress 重新生成缩略图南阳seo优化公司
  • 中英语网站制作方法制作网站的公司还能赚钱吗
  • 找建设网站百度怎么发自己的广告
  • 成立公司怎么取名长沙seo优化推荐
  • 天津网站建设好公司wordpress 导航下拉菜单显示5条