sql >> Database >  >> RDS >> Oracle

Hoe rijen te beperken tot waar SOM van een kolom gelijk is aan een bepaalde waarde in Oracle

Dit is een goede use case voor het gebruik van een cumulatieve som.

Ervan uitgaande dat de volgorde van de rijen ondubbelzinnig wordt gedefinieerd door de kolommen sem en subjectcode , zoals uw vraag impliceert, kunt u de vraag als volgt schrijven:

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



  1. Hoe kan ik de ORDER BY RAND()-functie van MySQL optimaliseren?

  2. De tupelstructuur van een record declareren in PL/pgSQL

  3. Gegevensmigratie tussen verschillende DBMS's

  4. Hoe zorg ik ervoor dat de functies NOW() en CURDATE() van MySQL UTC gebruiken?