Puoi anche scrivere ciò che Andrey ha scritto in modo un po' più compatto se selezioni TOP (1) WITH TIES e inserisci l'espressione ROW_NUMBER() nella clausola 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 proposito, non c'è motivo di usare LIKE per un semplice confronto di stringhe.)