select
stats_generation_number = row_number() over (partition by base.object_id, base.stat_cols, base.has_filter order by base.is_index desc),
*
from (
select
o.object_id,
s.stats_id,
schema_name = sh.name,
object_name = o.name,
stat_name = s.name,
is_index = case when i.name is null then 0 else 1 end,
s.has_filter,
s.filter_definition,
stat_cols = stuff(
(
select ',' + index_col(db_name(db_id()) + '.' + quotename(sh.name) + '.' + quotename(o.name),sc.stats_id,sc.stats_column_id)