Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So beschränken Sie Zeilen darauf, wo SUM einer Spalte einem bestimmten Wert in Oracle entspricht

Dies ist ein guter Anwendungsfall für die Verwendung einer kumulativen Summe.

Vorausgesetzt, die Reihenfolge der Zeilen ist durch die Spalten sem eindeutig definiert und subjectcode , wie Ihre Abfrage impliziert, können Sie die Abfrage folgendermaßen schreiben:

select *
  from (select t.*,
               sum(t.credit) over (order by t.sem, t.subjectcode) as credit_sum
          from studyplan t
         where t.matricsno = 'D031310087')
 where credit_sum <= 20 -- adjust to desired number of credits
 order by sem, subjectcode