sql >> Database >  >> RDS >> Sqlserver

Ontvang het laatste record van elke maand

Je zou de ROW_NUMBER() functie hier kunnen gebruiken:

SELECT *
FROM (SELECT lp.ID, lp.LoanID, lp.PaymentDate
          , ROW_NUMBER() OVER (PARTITION BY YEAR(PaymentDate), Month(PaymentDate) ORDER BY PaymentDate DESC) 'RowRank'
      FROM LoanPayments lp 
     )sub
WHERE RowRank = 1

Dat is gewoon de meest recente Betaaldatum voor elke maand, als je het wilt met LoanID, zou je LoanID toevoegen aan de PARTITION BY lijst. Als u geïnteresseerd bent in het behouden van banden, kunt u RANK() . gebruiken in plaats van ROW_NUMBER()



  1. MySQL-gedrag van ON DUPLICATE KEY UPDATE voor meerdere UNIEKE velden

  2. mysql.h ontbreekt .... (Ruby on Rails, OSX)

  3. SQL Inner join op geselecteerde instructies

  4. ORACLE SQL selecteer distinct, geen duplicaten verwijderen