多个条件下的Oracle SQL NTILE

时间:2017-06-21 07:42:06

标签: sql oracle

我想将数据集拆分为多组N-TILES,但我不确定我当前的方法是否是最佳方法 所以基本上我想从这个

开始
  col1   col2  col3
   x1     3     5
   x2    13     4
   x3     3     5
   x4     5     7
   x5     1     8
   x6     1     12
   x7     5     11
   x8     3     23

  col1   col2  col3  nt1    nt2
   x7     5     11    1       1
   x4     5     7     1       1
   x3     4     5     1       2
   x2     13    4     1       2
   x8     3     23    2       1
   x6     1     12    2       1
   x5     1     8     2       2
   x1     3     5     2       2

我目前正在使用with子句

 ntile(2) OVER (ORDER BY col2 DESC) nt1
然后分区

ntile(2) OVER (PARTITION BY nt1 ORDER BY col3 DESC) nt2

然而,对于很多行来说,这是相当慢的,所以我想知道是否有更高效或更优雅的方式来做这件事。

0 个答案:

没有答案