Best way to filter result set by secondary key
You should just use 

row_number() over (partition by SecondaryKey 
                   order by DateCreated desc) 


this will partition the data by SecondaryKey and then you will get the most recent data (ordered by DateCreated desc) 

with CTE as (
 select [PrimaryKey], SecondaryKey, [Data],DateCreated,
        rn = row_number() over (partition by SecondaryKey order by DateCreated desc)
  from dbo.Entry
  )
 select [PrimaryKey], SecondaryKey, [Data],DateCreated
 From CTE where rn = 1 --rn = 1 is most recent data since we are ordering by desc


see SQLFiddle