how about something like this
SELECT T.STOREID, T.DEALERCD, T.DEALERNAME, T.DEALERPERMIT
,SUM(CASE WHEN T.PREVDEALERCD IS NULL OR T.PREVDEALERCD <> T.DEALERCD THEN 1 ELSE 0 END) OVER(PARTITION BY STOREID)
FROM
(
SELECT S.STOREID, S.DEALERCD, S.DEALERNAME, S.DEALERPERMIT
,MAX(DEALERCD)...