sql >> Database >  >> RDS >> Sqlserver

Ik heb een sql-query nodig om op naam te groeperen, maar geef andere velden terug op basis van de meest recente invoer

Je kunt wat Andrey schreef ook wat compacter opschrijven als je TOP (1) WITH TIES selecteert en de ROW_NUMBER()-expressie in de ORDER BY-component plaatst:

SELECT TOP (1) WITH TIES
  CallerFName,
  CallerLName,
  CallerDOB,
  CreatedOn,
  PhoneNoteID
FROM [dbo].[PhoneCallNotes]
WHERE CallerLName = 'Public' 
ORDER BY ROW_NUMBER() OVER(
  PARTITION BY CallerFName, CallerLName, CallerDOB
  ORDER BY CreatedOn DESC
)

(Trouwens, er is geen reden om LIKE te gebruiken voor een eenvoudige tekenreeksvergelijking.)



  1. Oracle Error PLS-00323:subprogramma of cursor is gedeclareerd in een pakketspecificatie en moet worden gedefinieerd in de pakkettekst

  2. SQLAlchemy:update from_select

  3. mysql full join error-#1054 - Onbekende kolom 'feesmaster.PAIDAMOUNT' in 'veldlijst'

  4. SQL Server 2012 Service Pack 1 &Cumulatieve Update 1