何度も試しても、 DENSE_RANK()
内の順序を修正できるかどうかはまだわかりません。 のOVER
しかし、私は2つの間の解決策を見つけました。
SELECT lot, def, qtd
FROM (
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 <= 10
ORDER BY rnk, qtd DESC, lot, def
私が試したソリューションほど良くはありませんが、以前の作業コードよりは優れています。 Sum(Sum(tbl1.qtd))OVER(PARTITION BY tbl2.lot)
> DENSE_RANK()
から 次に、 qtd_lot
という名前で追加します 。