oracle - 如何将 2 列旋转为 1 行,第 1 行作为列标签,第 2 行作为值
问题描述
我有 2 列数据,布局如下:
-------------
|Name|Count |
-------------
|Val1|Val1_2|
|Val2|Val2_2|
|Val3|Val3_2|
|Val4|Val4_2|
|Val5|Val5_2|
但是我不确定如何使用 pivot 函数,让它看起来像这样:
------------------------------------
|Val1 |Val2 |Val3 |Val4 |Val5 |
------------------------------------
|Val1_2|Val2_2|Val3_2|Val4_2|Val5_2|
我知道必须使用某种聚合函数,但是我希望 val1_2 等保持不变。
有任何想法吗?我认为这可能很简单,但我不能完全掌握它。
解决方案
如果您只有 5 列,则可以使用假聚合函数和案例
select min(case when Name ='Val1' then count end ) Val1
, min(case when Name ='Val2' then count end ) Val2
, min(case when Name ='Val3' then count end ) Val3
, min(case when Name ='Val4' then count end ) Val4
, min(case when Name ='Val5' then count end ) Val5
from my_table
推荐阅读
- node.js - 为什么我的 PDF 没有间歇性地保存在我的 Node 函数中?
- node.js - 使用 MongoDB Atlas 和 mongoose 进行慢速查询
- sql-server - 如何使用 Django 在不刷新的情况下更改页面数据
- javascript - 尝试遍历对象并将结果附加到 DOM 元素以创建网格
- oracle - 获取 java.sql.SQLRecoverableException: IO Error: General SSLEngine problem when using Talend with Autonomous Data Warehouse
- javascript - 使用 paper.js 的角度渐变 SVG
- html - 如何删除我的部分标签顶部的空间
- vue.js - 在 CPanel 上部署 Nuxtjs
- kubernetes - kubernetes/ingress-nginx 创建大量同步事件
- javascript - “在新标签中打开”单击链接未打开 href 值