Please see below query and execution plan – Any advice on how to get rid of SORT operator cost (nothing coming on missing indexes recommendation)

```
SELECT *
FROM (
select top 5 convert(varchar,DayKeyId) + '|' + convert(varchar,DimCampaignId) + '|' + convert(varchar,DimLeadProviderId) + '|' + convert(varchar,fcd.DimCorpId) + '|' + convert(varchar,CASE when DimLocationId in ('149','3','147') then 39 when DimLocationId in ('148','146') then 38
else DimVendorId end) + '|' + convert(varchar,DimLocationId) + '|' + convert(varchar,DimEmployeeId) + '|' + convert(varchar,DimRateTypeId) as LinkKey
,DayKeyId
,DimCampaignId
,DimLeadProviderId
,fcd.DimCorpId
,DimDispositionId
,CASE when DimLocationId in ('149','3','147') then 39
when DimLocationId in ('148','146') then 38
else DimVendorId end as DimVendorId
,DimLocationId
,DimEmployeeId
,DimRateTypeId
,sum(isnull(RecordCounter,0)) as RecordCounter
,sum(isnull(SalesCounter,0)) as SalesCounter
,sum(isnull(DialCounter,0)) as DialCounter
,sum(isnull(ContactCounter,0)) as ContactCounter
,sum(isnull(RefusalCounter,0)) as RefusalCounter
,sum(isnull(products_sold,0)) as products_sold
,sum(isnull(rgu_hsd,0)) as rgu_hsd
,sum(isnull(rgu_phone,0)) as rgu_phone
,sum(isnull(rgu_video,0)) as rgu_video
,sum(isnull(rgu_xh,0)) as rgu_xh
,sum(isnull(PremiumChannel,0)) as PremiumChannel
,sum(isnull(video_equipment,0)) as video_equipment
,sum(isnull(x_mobile,0)) as x_mobile
,sum(isnull(x_mobile_equipment,0)) as x_mobile_equipment
,sum(isnull(x_mobile_accessory,0)) as x_mobile_accessory
,sum(isnull(x_mobile_service,0)) as x_mobile_service
,sum(isnull(total_duration,0)) as total_duration
,sum(isnull(TalkTime,0)) as TalkTime
,sum(isnull(WrapTime,0)) as WrapTime
,sum(isnull(OtherTime,0)) as OtherTime
,sum(isnull(costs,0)) as costs
,sum(isnull(sph_num,0)) as sph_num
,sum(isnull(sph_dem,0)) as sph_dem
,sum(isnull(cph_num,0)) as cph_num
,sum(isnull(cph_dem,0)) as cph_dem
,sum(isnull(rgu_total,0)) as rgu_total
,sum(isnull(take_rate_num,0)) as take_rate_num
,sum(isnull(take_rate_dem,0)) as take_rate_dem
,sum(isnull(rgu_take_rate_dem,0)) as rgu_take_rate_num
,sum(isnull(rgu_take_rate_num,0)) as rgu_take_rate_dem
,sum(isnull(rgu_xinfinity,0)) as rgu_xinfinity
,sum(case when DimDispositionId = 1 and (isnull(SalesCounter,0) > 0)
then isnull(RecordCounter,0) else 0 end) as HomesSold
,sum(case when DimDispositionId = 2 and (isnull(SalesCounter,0) > 0)
then isnull(RecordCounter,0) else 0 end) as HomesSaved
,sum(case when DimDispositionId = 3 and (isnull(SalesCounter,0) > 0)
then isnull(RecordCounter,0) else 0 end) as CustomerCare
,sum(case when DimDispositionId in (1,2,3) and (isnull(SalesCounter,0) > 0)
then isnull(RecordCounter,0) else 0 end) as HomesSoldSaved
,sum(case when DimDispositionId = 1 and ((isnull(rgu_video,0)+isnull(rgu_hsd,0)+isnull(rgu_phone,0)+isnull(rgu_xh,0)+isnull(rgu_xinfinity,0)) > 0)
then isnull(RecordCounter,0) else 0 end) as HomesSoldRGU
,sum(case when DimDispositionId = 2 and ((isnull(rgu_video,0)+isnull(rgu_hsd,0)+isnull(rgu_phone,0)+isnull(rgu_xh,0)+isnull(rgu_xinfinity,0)) > 0)
then isnull(RecordCounter,0) else 0 end) as HomesSavedRGU
,sum(case when DimDispositionId = 1 and (isnull(SalesCounter,0) > 0)
then isnull(rgu_total,0) else 0 end) as RGUSold
,sum(case when DimDispositionId = 2 and (isnull(SalesCounter,0) > 0)
then isnull(rgu_total,0) else 0 end) as RGUSaved
,sum(case when DimDispositionId not in (63,64,66,70,72,73,74,75,78,114,115,116,117) and isnull(ContactCounter,0) > 0
then isnull(RecordCounter,0) else 0 end) as EligibleContactCounter
,sum(case when DimDispositionId in (1,2) and (isnull(SMSConsent,0) > 0)
then isnull(SMSConsent,0) else 0 end) as SMSConsent
,sum(case when DimDispositionId in (1,2) and (isnull(AutoIvrConsent,0) > 0)
then isnull(AutoIvrConsent,0) else 0 end) as AutoIvrConsent
,sum(case when DimDispositionId in (1,2) and (isnull(IVRXMOnlyConsent,0) > 0)
then isnull(IVRXMOnlyConsent,0) else 0 end )as IVRXMOnlyConsent
,sum(case when DimDispositionId in (1,2) and (isnull(EmailConsent,0) > 0)
then isnull(EmailConsent,0) else 0 end) as EmailConsent
,sum(case when DimDispositionId in (1,2) and (isnull(ManualConsent,0) > 0)
then isnull(ManualConsent,0) else 0 end) as ManualConsent
,sum(case when DimDispositionId in (1,2) and (isnull(OverrideConsent,0) > 0)
then isnull(OverrideConsent,0) else 0 end) as OverrideConsent
,sum(case when DimDispositionId in (1,2) and (isnull(NAConsent,0) > 0)
then isnull(NAConsent,0) else 0 end) as NAConsent
,sum(isnull(PayPerPerformanceCosts,0)) as PayPerPerformanceCosts
,sum(isnull(TermQty,0)) as TermQty
,sum(isnull(rgusoldwosave,0)) as rgusoldwosave
,sum(isnull(rgusoldwsave,0)) as rgusoldwsave
,sum(isnull(videorgusoldwosave,0)) as videorgusoldwosave
,sum(isnull(videorgusoldwsave,0)) as videorgusoldwsave
,sum(isnull(hsdrgusoldwosave,0)) as hsdrgusoldwosave
,sum(isnull(hsdrgusoldwsave,0)) as hsdrgusoldwsave
,sum(isnull(phonergusoldwosave,0)) as phonergusoldwosave
,sum(isnull(phonergusoldwsave,0)) as phonergusoldwsave
,sum(isnull(xhrgusoldwosave,0)) as xhrgusoldwosave
,sum(isnull(xhrgusoldwsave,0)) as xhrgusoldwsave
,sum(isnull(xmrgusoldwosave,0)) as xmrgusoldwosave
,sum(isnull(xmrgusoldwsave,0)) as xmrgusoldwsave
,sum(case when DimDispositionId not in (63,64,66,70,72,73,74,75,78,114,115,116,117) and isnull(ContactCounter,0) > 0
then 1 else 0 end) as dinacontactpct_num
,sum(isnull(DialCounter,0)) as dinacontactpct_dem
,sum(case when DimDispositionId = 2 and (isnull(SalesCounter,0) > 0)
then 1 else 0 end) as dinasaved_take_rate_num
,sum(case when DimDispositionId not in (63,64,66,70,72,73,74,75,78,114,115,116,117) and isnull(ContactCounter,0) > 0
then 1 else 0 end) as dinasaved_take_rate_dem
,sum(isnull(SalesCounter,0)) as dinasold_take_rate_num
,sum(case when DimDispositionId not in (63,64,66,70,72,73,74,75,78,114,115,116,117) and isnull(ContactCounter,0) > 0
then 1 else 0 end) as dinasold_take_rate_dem
,sum(case when DimDispositionId in (1,2) and (isnull(SalesCounter,0) > 0)
then 1 else 0 end) as dinatotal_take_rate_num
,sum(case when DimDispositionId not in (63,64,66,70,72,73,74,75,78,114,115,116,117) and isnull(ContactCounter,0) > 0
then 1 else 0 end) as dinatotal_take_rate_dem
,sum(isnull(NoIbContact,0)) as NoIbContact
,sum(isnull(RevenueAmount,0)) as RevenueAmount
,fcd.LastUpdateDate
from FactCallDetail (nolock) fcd
inner join DimCorp
dc on fcd.DimCorpId = dc.DimCorpId
where 1=1
group by convert(varchar,DayKeyId) + '|' + convert(varchar,DimCampaignId) + '|' + convert(varchar,DimLeadProviderId) + '|' + convert(varchar,fcd.DimCorpId) + '|' +
convert(varchar,CASE when DimLocationId in ('149','3','147') then 39
when DimLocationId in ('148','146') then 38
else DimVendorId end) + '|' +
convert(varchar,DimLocationId) + '|' + convert(varchar,DimEmployeeId) + '|' + convert(varchar,DimRateTypeId)
,DayKeyId
,DimCampaignId
,DimLeadProviderId
,fcd.DimCorpId
,CASE when DimLocationId in ('149','3','147') then 39
when DimLocationId in ('148','146') then 38
else DimVendorId end
,DimLocationId
,DimEmployeeId
,DimRateTypeId
,DimDispositionId
,fcd.LastUpdateDate
) AS ZZ
Where DayKeyId in (
Select DayKeyId
From vw_dim_calendar
Where CurrentFiscalYear = 'Fiscal YTD'
)
GO
```