【问题标题】:Need row data column wise in oracle在 oracle 中需要行数据列明智
【发布时间】:2021-06-27 16:05:27
【问题描述】:

我需要比较 owners 列中 3 个来源(27、2、55)的价格。我不确定我应该使用选择子查询还是左连接?

想要的结果

【问题讨论】:

标签: sql excel vba oracle


【解决方案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'
猜你喜欢
  • 2016-06-21
  • 1970-01-01
  • 1970-01-01
  • 2021-04-28
  • 2019-12-25
  • 1970-01-01
  • 1970-01-01
  • 2021-08-24
  • 2017-01-26
相关资源
最近更新 更多