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

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

原始数据

      比如有如此表结构定义:

        假如查询数据如下:

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.lryc.cn/news/161410.html

相关文章:

  • 二蛋赠书一期:《快捷学习Spring》
  • Threejs汽车展厅
  • LeetCode:207. 课程表、210. 课程表 II(拓扑排序 C++)
  • 如何使用组件
  • Android 13.0 Launcher3定制之双层改单层(去掉抽屉式二)
  • 对卷积的一点具象化理解
  • NV12数据格式转H265编码格式实现过程
  • ubuntu 22.04 深度学习环境配置
  • 支付宝小程序集成mqtt兼容IOS和安卓
  • 在Qt5中SQLite3的使用
  • 使用Docker部署debezium来监控 MySQL 数据库
  • 百度低质量站点怎么办?解决百度低质量站点的方法和工具
  • MSOS604A是德科技keysight MSOS604A示波器
  • 春秋云镜 CVE-2016-0785
  • 入门ElasticSearch :为什么选择ES作为搜索引擎?
  • 汽车安全及标准
  • APP备案流程详细解读
  • ES 集群常用排查命令
  • Nougat 深度剖析
  • ffmpeg的使用
  • 深度强化学习算法的参数更新时机
  • 【进阶篇】MySQL的MVCC实现机制详解
  • Git 命令行查看仓库信息
  • 【爬虫】8.1. 深度使用tesseract-OCR技术识别图形验证码
  • 【PythonRS】基于GDAL修改栅格数据的DN值
  • mysql课堂笔记 mac
  • 2023年数学建模国赛A 定日镜场的优化设计思路分析
  • 【QT】QMessageBox消息框的使用(16)
  • XL-LightHouse 与 Flink 和 ClickHouse 流式大数据统计系统
  • 【postgresql 基础入门】创建数据库的方法,存储位置,决定自己的数据的访问用户和范围