with by_validator as (
select
date_trunc('week', block_timestamp) as time,
address,
avg(voting_power) as avg_voting_power,
sum(avg_voting_power) over (partition by time) as total_voting_power,
100 * avg_voting_power / total_voting_power as percent_voting_power,
row_number() over (partition by time order by avg_voting_power desc) as rank
from terra.validator_voting_power
group by time, address
qualify rank < 11
)
select
time,
sum(percent_voting_power) as perc_of_top_10
from by_validator
where time > getdate() - interval'1 year'
group by time