经过大量的努力我还没有弄清楚是否有可能解决内部的顺序
DENSE_RANK()的
OVER,但我却发现了一个解决方案在两者之间。
SELECt lot, def, qtdFROM ( SELECt DENSE_RANK() OVER (ORDER BY qtd_lot DESC) rnk, lot, def, qtd FROM ( SELECt tbl2.lot lot, tbl1.def def, Sum(tbl1.qtd) qtd, Sum(Sum(tbl1.qtd)) OVER (PARTITION BY tbl2.lot) qtd_lot FROM db.tbl1 tbl1, db.tbl2 tbl2 WHERe tbl2.key = tbl1.key GROUP BY tbl2.lot, tbl1.def ))WHERe rnk <= 10ORDER BY rnk, qtd DESC, lot, def
它不像我尝试的解决方案那样好,但是比我以前的工作代码要好。我所做的是将
Sum(Sum(tbl1.qtd)) OVER (PARTITION BYtbl2.lot)移出,
DENSE_RANK()然后添加名称
qtd_lot。



