Because you're grouping by the actual value, not the truncated value. Try this:SELECT count(*),ticker,DATEADD(ms, -DATEPART(ms,last_upd_date), last_upd_date) from crx_order
group by DATEADD(ms, -DATEPART(ms,last_upd_date), last_upd_date),ticker
order by DATEADD(ms, -DATEPART(ms,last_upd_date), last_upd_date) desc