sql >> Database teknologi >  >> RDS >> Sqlserver

Få sidste rekord fra hver måned

Du kan bruge funktionen ROW_NUMBER() her:

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

Det er bare den seneste betalingsdato for hver måned, hvis du ville have det med LoanID, ville du tilføje LoanID til PARTITION BY liste. Hvis du var interesseret i at bevare bånd, kunne du bruge RANK() i stedet for ROW_NUMBER()



  1. Enkel måde at beregne medianen med MySQL

  2. Oracle ODBC:Drivers SQLAllocHandle på SQL_HANDLE_ENV mislykkedes

  3. Grundlæggende om fremmednøgler i MySQL?

  4. Hvad er den forventede adfærd for flere sæt-returnerende funktioner i SELECT-sætning?