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

oracle之行转列

对于Oracle的行转列功能一直云里雾里,马马虎虎,对行转列的使用场景和使用方法都不够深刻,最近有空理解一下。
Oracle 11g后有专门的函数pivot,对于特定的场景可以直接套用。
需求:求各份job不同员工工资是多少?

jobsaldeptno
A100010
A100020
A200020
B300020
B400030
C500020
C600030
select* from
(select ②job,sal,deptno)
pivot (sum(sal) as ③s
for deptno in (10 as d10,20 as d20,30 as d30))
order by 1;

执行结果如下:

jobd10_sd20_sd30_s
A10003000
B30004000
C50006000

注释:
① 该处返回的是行转列之后的字段,如果查询原有字段会报错;
② 除了要汇总的列sal和要转换的列deptno,其他字段默认group by;
③ as后加的s与d10、d20、d30默认下划线连接,也可不做另外连接;
④ pivot子句实际执行的还是case when语句。


http://www.kler.cn/a/512407.html

相关文章:

  • (undone) 并行计算学习 (Day2: 什么是 “伪共享” ?)
  • OpenCV相机标定与3D重建(63)校正图像的畸变函数undistort()的使用
  • Linux系统之kill命令的基本使用
  • 解决用 rm 报bash: /usr/bin/rm: Argument list too long错
  • SparkSQL函数
  • C语言之装甲车库车辆动态监控辅助记录系统
  • 亲测有效!如何快速实现 PostgreSQL 数据迁移到 时序数据库TDengine
  • vue3+three.js加载glb模型
  • 基于SpringBoot + Mybatis Plus + SaToken + Thymeleaf + Layui的后台管理系统
  • Python基于Django的社区爱心养老管理系统设计与实现【附源码】
  • Cyber Security 101-Security Solutions-Firewall Fundamentals(防火墙基础)
  • Java Web开发高级——Spring Boot与Docker容器化部署
  • 电子电气架构 --- 车载通信诊断
  • 【开源免费】基于SpringBoot+Vue.JS密接者跟踪系统(JAVA毕业设计)
  • 大语言模型增强推荐系统:分类、趋势、应用与未来
  • c# PDF文件合并工具
  • python milvus及curl命令进行query请求
  • Java工程结构:服务器规约(JVM 碰到 OOM 场景时输出 dump 信息、设置tomcat的 JVM 的内存参数、了解服务平均耗时)
  • STM32更新程序OTA
  • 为AI聊天工具添加一个知识系统 之54 为事务处理 设计 基于DDD的一个 AI操作系统 来处理维度
  • npm配置electron专属的淘宝镜像进行安装
  • 2、ansible的playbook
  • MongoDB文档查询
  • PyTorch使用教程(11)-cuda的使用方法
  • Skeleton 骨架屏
  • 【漫话机器学习系列】051.错误类型(Error Type)