sql >> Base de Datos >  >> RDS >> Sqlserver

Necesito una consulta sql para agrupar por nombre pero devolver otros campos según la entrada más reciente

También puede escribir lo que escribió Andrey de forma algo más compacta si selecciona TOP (1) CON TIES y coloca la expresión ROW_NUMBER() en la cláusula 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
)

(Por cierto, no hay razón para usar LIKE para una simple comparación de cadenas).