在 oracle 中需要行数据列明智
Posted
技术标签:
【中文标题】在 oracle 中需要行数据列明智【英文标题】:Need row data column wise in oracle 【发布时间】:2021-06-27 16:05:27 【问题描述】:我需要比较 owners 列中 3 个来源(27、2、55)的价格。我不确定我应该使用选择子查询还是左连接?
想要的结果
【问题讨论】:
请查看这篇文章:Why not upload images of code/errors when asking a question? How to create a Minimal, Reproducible Example 和 How much research effort is expected of Stack Overflow users?。 这能回答你的问题吗? Oracle SQL pivot query 【参考方案1】:看起来像一个支点。
#1 - 10 行中的示例数据;您可能需要的查询从第 12 行开始。
SQL> with test (id_value, as_of, timezone, price, owner) as
2 -- sample data
3 (select 'EEM.A', date '2021-06-25', 'J1530', 55.04, 55 from dual union all
4 select 'EEM.A', date '2021-06-25', 'J1530', 55.04, 27 from dual union all
5 select 'EEM.A', date '2021-06-25', 'J1530', 55.04, 2 from dual union all
6 --
7 select 'AMX.N', date '2021-06-25', 'J1530', 15.4, 55 from dual union all
8 select 'AMX.N', date '2021-06-25', 'J1530', 15.4, 27 from dual union all
9 select 'AMX.N', date '2021-06-25', 'J1530', 15.4, 2 from dual
10 )
11 -- query begins here
12 select *
13 from test
14 pivot (max(price)
15 for owner in (55, 27, 2)
16 );
ID_VA AS_OF TIMEZ 55 27 2
----- ---------- ----- ---------- ---------- ----------
AMX.N 06/25/2021 J1530 15,4 15,4 15,4
EEM.A 06/25/2021 J1530 55,04 55,04 55,04
SQL>
【讨论】:
我刚刚在 Golden 6 软件上试过这个,我需要从第一行开始 - 测试吗? 从来没有听说过“golden 6 software”,但是 - 不,你会从第 12 行开始(正如我所写的,但你要么没有阅读,要么不明白我是什么说)。 select * from quotes_mxsequities pivot (max(price) for owner in (55, 27, 2) ) where timezone = 'J1530' and asof = '25Jun2021'; 我刚刚尝试过,但没有得到想要的结果 如您所见,我是-您发布的示例数据。我可以告诉 - 根据您发布的评论 - ASOF 看起来奇怪。如果它应该是 DATE 值,请尝试使用and asof = date '2021-06-25'
以上是关于在 oracle 中需要行数据列明智的主要内容,如果未能解决你的问题,请参考以下文章