sql >> Base de Datos >  >> RDS >> Oracle

Cómo limitar las filas donde la SUMA de una columna es igual a cierto valor en Oracle

Este es un buen caso de uso para usar una suma acumulativa.

Suponiendo que el orden de las filas esté definido sin ambigüedades por las columnas sem y subjectcode , como implica su consulta, puede escribir la consulta de esta manera:

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