首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle:将列转置为行

Oracle:将列转置为行
EN

Stack Overflow用户
提问于 2020-12-20 20:11:21
回答 2查看 25关注 0票数 0

我有以下表格中的数据

代码语言:javascript
复制
  bins  |   pro
  -------------
    1   |   0.10
    2   |   0.05
    3   |   0.78
    4   |   0.20 
    5   |   0.82
    6   |   0.45

我需要一个包含以下结果的查询:

代码语言:javascript
复制
   1    |   2   |   3   |   4   |   5   |   6
-------------------------------------------------
  0.10  | 0.05  |  0.78 |  0.20 |  0.82 |  0.45
EN

回答 2

Stack Overflow用户

发布于 2020-12-20 20:13:52

对于固定的bin列表,您可以进行条件聚合:

代码语言:javascript
复制
select 
    max(case when bins = 1 then pro end) as bins1,
    max(case when bins = 2 then pro end) as bins2
    ...
    max(case when bins = 6 then pro end) as bins6
from mytable
票数 0
EN

Stack Overflow用户

发布于 2020-12-21 02:05:51

或者,使用pivot本身:

代码语言:javascript
复制
SQL> with data (bins, pro) as
  2  -- sample data
  3    (select 1, 0.1  from dual union all
  4     select 2, 0.05 from dual union all
  5     select 3, 0.78 from dual union all
  6     select 4, 0.2  from dual union all
  7     select 5, 0.82 from dual union all
  8     select 6, 0.45 from dual
  9    )
 10  -- pivoting begins here
 11  select *
 12  from (select bins, pro
 13        from data
 14       )
 15  pivot
 16    (max(pro)
 17     for bins in (1, 2, 3, 4, 5, 6)
 18    )
 19  ;

    1     2     3     4     5     6
----- ----- ----- ----- ----- -----
 0.10  0.05  0.78  0.20  0.82  0.45

SQL>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65379709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档