select [date], row_number() over (partition by cast([date] as date) order by cast([date] as date), party) as sno, party from myTable order by cast([date] as date), partysno exists, update and return with updated values:
with mySort (date, sno, party) as ( select [date], row_number() over (partition by cast([date] as date) order by cast([date] as date), party) as sno, party from myTable ) update myTable set sno = mySort.sno from mySort where mySort.date = myTable.date and mySort.party = myTable.party; select [date], sno, party from myTable order by cast([date] as date), sno