使用groupby子句调整oracle查询

时间:2016-05-23 17:07:24

标签: oracle performance group-by hints

我有一个表,每个Key都有很多成本列 表A

SK1 SK2 Col1 Col2 Col3 ..... Col50 Flg(Y / N)

1    2    10    20   30 ...... 500  Y
1    2    10    20   30 ...... 500  N
2    2    10    20   30 ...... 500  N

我需要聚合(求和)所有值,然后检查Y是否有任何值,然后将它们添加到新的tableB。 这里应返回表(A)(sk1,sk2)的记录组合(1,2)。

我写的查询是选择所有cols的lisr并添加为group by。 我们有大量数据,因此这个查询运行时间太长。任何机会重新审视这一点,并使其变得更快。

选择    SK1,    SK2,    NVL(总和(COL3),0),    NVL(总和(COL4))0,    .....    NVL(总和(col50))    从表A    Sk1组,    SK2

Iam将此作为大型查询的一部分,在此基础上执行许多其他计算。

3 个答案:

答案 0 :(得分:0)

确定任何一组记录是否包含'Y'都会像......一样简单。

http.get({
  hostname: 'localhost',
  port: 80,
  path: '/',
  agent: false  // create a new agent just for this one request
}, (res) => {
           res.setHeader();
           res.send('Hello World');
           res.end();
  // Do stuff with response
})

答案 1 :(得分:0)

现在我已经创建了一个临时表并将所有数据加载到其中。

答案 2 :(得分:-1)

如果您将此作为大型查询的一部分使用,您是否尝试使用WITH选项?

可能是这样的

ImageLoader

更多help here