[PG]将一行数据打散成多行数据

news2024/9/25 3:27:12

原始数据

      比如有如此表结构定义:

        假如查询数据如下:

select 
    dt as "日期",
    bj_count as "北京", sh_count as "上海",
    gz_count as "广州", sz_count as "深圳"
from city_stats
order by dt

---------------------------------------------------------
|    日期     |   北京    |   上海   |   广州    |  深圳   |
---------------------------------------------------------
| 2023-09-04 |   1111   |   1122   |   1133   |  1144   |
| 2023-09-05 |   2211   |   2222   |   2233   |  2244   |
| 2023-09-06 |   3311   |   3322   |   3333   |  3344   |
---------------------------------------------------------

期望效果

------------------------------------
|      日期     |   城市   |   统计  |
------------------------------------
|  2023-09-04  |   北京   |   1111  |
|  2023-09-04  |   上海   |   1122  |
|  2023-09-04  |   广州   |   1133  |
|  2023-09-04  |   深圳   |   1144  |
|  2023-09-05  |   北京   |   2211  |
|  2023-09-05  |   上海   |   2222  |
|  2023-09-05  |   广州   |   2233  |
|  2023-09-05  |   深圳   |   2244  |
|  2023-09-06  |   北京   |   3311  |
|  2023-09-06  |   上海   |   3322  |
|  2023-09-06  |   广州   |   3333  |
|  2023-09-06  |   深圳   |   3344  |
------------------------------------

解决方案

   采用笛卡尔积方式"CROSS JOIN":

select 
    s.dt as "日期", 
    c.city_name as "城市",
    c.city_count as "统计"
from city_stats as s
cross join LATERAL(
    VALUES
        (1,'北京',s.bj_count),
        (2,'上海',s.sh_count),
        (3,'广州',s.gz_count),
        (4,'深圳',s.sz_count)
) as c (city_order,city_name,city_count)
order by s.dt, c.city_order

        执行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/985735.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux密码遗忘?别慌!解锁你的系统小秘籍!

很多朋友经常会忘记Linux系统的root密码,linux系统忘记root密码的情况该怎么办呢?重新安装系统吗?当然不用!进入单用户模式更改一下root密码即可。 步骤如下: 重启linux系统 3 秒之内要按一下回车,出现如…

基于Java+SpringBoot+Vue前后端分离在线互动学习网站设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

LeetCode寻找两个有序数组的中位数打败100%人

😀前言 在本文中,我们将深入研究一种复杂的算法问题:查找两个有序数组的中位数。这是一个经典的计算问题,通常出现在编程面试和算法挑战中。我们将首先探讨一种常见的暴力解决方法,然后逐步引入更高效的解决方案&#…

外滩大会今日开幕 生成式AI成为热议话题

2023 Inclusion外滩大会9月7日在上海黄浦世博园正式开幕。这场以“科技创造可持续未来”为主题的大会为期三天,近20位“两院”院士、诺贝尔奖和图灵奖得主,全球超500位有影响力的科技领军企业和专家学者,将在此带来一场科技、人文和产业的思想…

第5章 驱动模块传参实验(iTOP-RK3568开发板驱动开发指南 )

经过前两章实验的实战操作,我们已经完成最简单的helloworld驱动实验和模块驱动实验,加载模块可以使用“insmod”函数,使用“insmod”函数进行模块加载时也能进行参数的传递。运用得当可以极大提升内核测试速度。本节就来学习一下如何进行驱动…

Kafka入门与安装

为什么要用消息中间件? 异步处理 场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种1.串行的方式;2.并行方式。 串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注…

element-ui dialog弹窗 设置点击空白处不关闭

根据官网提供方法 场景:vue实现的网站有两个弹窗同时出现时,关闭报警,批量进度条弹窗也关闭了, 1、每一个页面都有可能出现的报警弹窗, 2、页面a批量操控硬件添加操作的进度条弹窗 开始以为是因为点击报警弹窗&#…

划片机实现装片、对准、切割、清洗到卸片的自动化操作

划片机是一种用于切割和分离材料的设备,通常用于光学和医疗、IC、QFN、DFN、半导体集成电路、GPP/LED氮化镓等芯片分立器件、LED封装、光通讯器件、声表器件、MEMS等行业。划片机可以实现从装片、对准、切割、清洗到卸片的自动化操作。 以下是划片机实现这些操作的步…

CSS 设置渐变背景 CSS 设置渐变边框

一、css渐变背景添加透明度opacity css渐变背景经常会在项目开发中遇到&#xff0c;此时UI如果给出的是单一的渐变背景&#xff08;没有背景透明度&#xff09;&#xff0c;这个我们会很快的写出代码&#xff0c;如下: <div class"btn">这是一个按钮</div&…

datagrip 相关数据连接信息无缝迁移

背景 因为公司换电脑了&#xff0c;接触的项目比较多&#xff0c;不同项目&#xff0c;不同环境的数据库连接有好几十个&#xff0c;如果在新电脑上挨个重新连接一遍劳心劳力&#xff0c;所以想看一下能不能直接将之前保存的连接信息直接迁移到新的电脑上面。 为此&#xff0c…

Apipost压测参数化如何使用

Apipost7.2.1版本一键压测新增参数化功能 如何使用&#xff1f; 这里我们用一个多用户登录情况来演示&#xff0c;需要准备包含用户名密码的CSV文件 创建CSV文件&#xff1a; 新建一个excel表格&#xff0c;在表格中新建username password&#xff0c;在下方输入每个账号和…

利用SoapIU工具生成webservice服务端java代码【二】

整理下今日使用SoapIU工具生成java代码的步骤&#xff0c;以axis2为例. 1.使用SoapUI&#xff0c;new SOAP Project 2.连接成功后&#xff0c;选择project&#xff0c;右键选择“Generate Code”&#xff0c;然后选择“Axis2”

java 整合 swagger-ui 步骤

1.在xml 中添加Swagger 相关依赖 <!-- springfox-swagger2 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><!-- springfox-swa…

2023年05月 C/C++(八级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 第1题&#xff1a;道路 N个以 1 … N 标号的城市通过单向的道路相连:。每条道路包含两个参数&#xff1a;道路的长度和需要为该路付的通行费&#xff08;以金币的数目来表示&#xff09; Bob and Alice 过去住在城市 1.在…

阿里云云主机免费试用三个月

试用链接如下&#xff1a; 阿里云云产品免费试用 云主机 费用试用三个月&#xff0c;每月750小时 实例规格 1核(vCPU) 2 GiB S6 系列机型 适用搭建网站等场景 网络带宽 1M 公网固定网络带宽 云盘40 GiB 真香&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&…

【经验分享】如何使用VSCode对比两个文件

问题&#xff1a; 当有两个不同版本的文件&#xff0c;如何使用VSCode对比两个文件 解决办法 长按ctrl选择想要对比的两个文件-----右键选择将已选项进行比较----大功告成 大功告成

Light Matrix、鲁比尼拳击场和 The Sandbox 联合推出鲁比尼拳击元宇宙

The Sandbox 非常高兴地宣布与 Light Matrix 以及鲁比尼拳击场达成战略合作。作为合作的一部分&#xff0c;The Sandbox、LightMatrix 和鲁比尼拳击场将共同创作「鲁比尼拳击场」&#xff0c;这是第一个在全球范围内展示泰拳艺术和泰拳故事的项目。该项目由 Demo Corporation 开…

算法:数组中的最大差值---“打擂台法“

1、题目&#xff1a; 给定一个整数数组 nums&#xff0c;找出给定数组中两个数字之间的最大差值。要求&#xff0c;第二个数字必须大于第一个数字。 2、分析特点&#xff1a; 求最大差值 > 最大值 - 最小值只需要遍历价格数组一遍&#xff0c;记录历史最小值&#xff0c;非…

DeepStream-gst-dsexample

gst-dsexample是个例子插件&#xff0c;你可以修改定制里的实现。你可以blur原图像&#xff0c;也可以填加新的meta. 变量解释 host_rgb_buf是根据用户设置的宽高processing_width/processing_height,创建的hostcuda内存&#xff0c;需要主要的是&#xff0c;它的格式RGB。 …

接口加密了该怎么测?

对明文编码生成信息摘要&#xff0c;以防止被篡改。比如MD5使用的是Hash算法&#xff0c;无论多长的输入&#xff0c;MD5都会输出长度为128bits的一个串。 摘要算法不要秘钥&#xff0c;客户端和服务端采用相同的摘要算法即可针对同一段明文获取一致的密文。 一、对称加密 对…