postgresql 行转列的例子

news/2024/7/9 19:32:25 标签: postgresql, 数据库

postgresql__0">postgresql 行转列的例子

首先要启用tablefunc 扩展。
用管理员账户执行下面的指令。

CREATE EXTENSION tablefunc;

在 PostgreSQL 中,你可以使用 crosstab 函数将列转换为行。crosstab 函数是在 tablefunc 扩展中提供的,因此在使用之前,你需要确保已经安装并启用了该扩展。

下面是一个示例,假设你有一个名为 sales 的表,其中包含了销售数据:

CREATE TABLE sales (
  product_id INT,
  month INT,
  amount NUMERIC
);

INSERT INTO sales (product_id, month, amount)
VALUES
  (1, 1, 100),
  (1, 2, 150),
  (1, 3, 200),
  (2, 1, 50),
  (2, 2, 75),
  (2, 3, 100);

现在,你想要将这些数据按照产品 ID 进行列转行,使得每个产品的销售额在不同的月份中成为一行。你可以使用以下查询来实现:

SELECT *
FROM crosstab(
  'SELECT product_id, month, amount
   FROM sales
   ORDER BY 1, 2',
  'VALUES (1), (2), (3)'
) AS sales_pivot (product_id INT, month_1 NUMERIC, month_2 NUMERIC, month_3 NUMERIC);

这个查询中,我们首先指定了原始查询,它返回了 product_id、month 和 amount 列。然后,我们指定了一个包含所有可能 product_id 值的值列表,这里是 (1), (2), (3)。最后,我们使用 crosstab 函数将原始查询的结果进行转换,并指定了转换后的列名。

运行上述查询,你将会得到以下结果:

 product_id | month_1 | month_2 | month_3
------------+---------+---------+---------
          1 |     100 |     150 |     200
          2 |      50 |      75 |     100

这样,你就将原始的列转换为了行,每个产品的销售额在不同的月份中成为了一行。

更多案例请参考:
https://blog.csdn.net/qq_31156277/article/details/90598311


http://www.niftyadmin.cn/n/5200784.html

相关文章

csdn - mermaid

目录 方向节点样式形状箭头 子图流程图类图uml图甘特图 https://blog.csdn.net/sandalphon4869/article/details/89341443 https://blog.csdn.net/swinfans/article/details/89393853 https://zhuanlan.zhihu.com/p/614018391 https://blog.csdn.net/qq_42491125/article/detai…

如何将Docker的构建时间减少40%

与许多公司类似,我们为产品中使用的所有组件构建docker映像。随着时间的推移,其中一些映像变得越来越大,我们的CI构建花费的时间也越来越长。我的目标是CI构建不超过5分钟——差不多是喝杯咖啡休息的理想时间。如果构建花费的时间超过这个时间…

【C++上层应用】6. 信号 / 中断

文章目录 【 1. signal 函数 】【 2. raise函数 】 信号是由操作系统传给进程的 中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 CtrlC 产生中断。有些信号不能被程序捕获,但是下表所列信号可以在程序中捕…

Spring-IOC-@Value和@PropertySource用法

1、Book.java PropertySource(value"classpath:配置文件地址") 替代 <context:property-placeholder location"配置文件地址"/> Value("${book.bid}") Value("${book.bname}") Value("${book.price}") <bean id&…

C++实现KNN和K-Means

学校机器学习课程的实验课要求实现KNN和K-Means&#xff1a; &#xff08;平时没听课&#xff09;临时去查了一下KNN和K-Means是啥&#xff0c;然后自己用C写了小例子&#xff0c;想着写都写了那就把代码贴出来吧。 顺便再聊聊自己对于这俩算法的理解。 下面是文心一言的回答…

Python数据分析实战-爬取以某个关键词搜索的最新的500条新闻的标题和链接(附源码和实现效果)

实现功能 通过百度引擎&#xff0c;爬取以“开源之夏”为搜索关键词最新的500条新闻的标题和链接 实现代码 1.安装所需的库&#xff1a;你需要安装requests和beautifulsoup4库。可以使用以下命令通过pip安装&#xff1a; pip install requests beautifulsoup42.发起搜索请求…

枚举 小蓝的漆房

题目 思路 核心思想是枚举 首先利用set记录每一种颜色 然后依次从set取出一种颜色作为targetColor&#xff0c;遍历房子 如果当前房子的颜色和targetColor不相同&#xff0c;就以当前房子为起点&#xff0c;往后长度为k的区间都涂成targetColor&#xff0c;并且需要的天数递增…

解决uncompyle6反编译报错KeyError

报错内容&#xff1a;KeyError&#xff1a;3.11.0 &#xff08;这个是我自己的Python版本号&#xff09; 主要原因就是你的Python版本没在它库文件支持的版本里&#xff0c;我们需要进行手动添加即可。 首先找到文件&#xff1a;magics.py 我的是在这个路径下&#xff1a;D:\…