Nach vielen Versuchen habe ich immer noch nicht herausgefunden, ob es möglich ist, die Reihenfolge innerhalb des DENSE_RANK()
zu korrigieren ist OVER
aber ich habe zwischen den beiden eine Lösung gefunden.
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
Es ist nicht so gut wie die Lösung, die ich versucht habe, aber es ist besser als mein vorheriger Arbeitscode. Ich habe den Sum(Sum(tbl1.qtd)) OVER (PARTITION BY tbl2.lot)
aus DENSE_RANK()
und fügen Sie es dann mit dem Namen qtd_lot
hinzu .