Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

J'ai besoin d'une requête sql pour regrouper par nom mais renvoyer d'autres champs en fonction de l'entrée la plus récente

Vous pouvez également écrire ce qu'Andrey a écrit de manière un peu plus compacte si vous sélectionnez TOP (1) WITH TIES et placez l'expression ROW_NUMBER() dans la clause ORDER BY :

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
)

(Au fait, il n'y a aucune raison d'utiliser LIKE pour une simple comparaison de chaînes.)