sql >> Databasteknik >  >> RDS >> Sqlserver

Jag behöver en sql-fråga för att gruppera efter namn men returnera andra fält baserat på den senaste posten

Du kan också skriva det som Andrey skrev något mer kompakt om du väljer TOP (1) WITH TIES och lägger ROW_NUMBER()-uttrycket i ORDER BY-satsen:

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
)

(Förresten, det finns ingen anledning att använda LIKE för en enkel strängjämförelse.)



  1. unaccent() förhindrar indexanvändning i Postgres

  2. mysql-frågeresultat i php-variabel

  3. Doktrin - Lägg till standardtidsstämpel till entitet som NOW()

  4. ta bort luckor i automatisk ökning