Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Eu preciso de uma consulta sql para agrupar por nome, mas retornar outros campos com base na entrada mais recente


Você também pode escrever o que Andrey escreveu de forma um pouco mais compacta se selecionar TOP (1) WITH TIES e colocar a expressão ROW_NUMBER() na 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
)

(A propósito, não há razão para usar LIKE para uma comparação simples de strings.)