I have the following view:

create view vThisIsAShockTest with schemabinding as
select PD.COBDate,
S.Shift,
P.PortfolioCategory,
P.AssetClass,
P.Product,
P.SubProduct,
P.SubProduct2,
S.Maturity,
sum (PD.PARAmount) as Paramount,
sum (PD.PARAmount * 10 * (S.Value - PD.Price) / S.Shift) / 1000 as DPosResult,
sum (PD.PARAmount * 10 * (S.MValue - PD.Price) / S.Shift) / 1000 as DNegResult,
sum (PD.PARAmount * 10 * (S.MValue - S.Value) / (S.Shift * 2)) / 1000 as AResult,
sum (PD.PARAmount * (((PD.PARAmount * 10 * ((S.MValue - S.Value) / (0.4))) * 100) / (PD.PARAmount * case PD.FlagHedge when 1 then 100 else PD.Price end * 10))) as PartialEResult,
count_big(*) as CountBig
from dbo.PortfolioMap P
join dbo.PDB4Partition PD on PD.PortfolioID = P.PortfolioID
join dbo.ShockB4Partition S on S.PortfolioDetailID = PD.PortfolioDetailID
group by PD.COBDate,
S.Shift,
P.PortfolioCategory,
P.AssetClass,
P.Product,
P.SubProduct,
P.SubProduct2,
S.Maturity

This works. I try to make the following index

create unique clustered index ixTest on vThisIsAShockTest (COBDate,
Shift,
PortfolioCategory,
AssetClass,
Product,
SubProduct,
SubProduct2,
Maturity)

and I get the following from SQL:

Warning: The optimizer cannot use the index because the select list of the view contains a non-aggregate expression.

This doesn't seem to make any sense to me - of course the select list contains non-aggregate expression - what else would I group by? Can someone please shed some light on this for me.

Thanks.