Updated 2022-11-23
    with firstvotes as (
    select voter,
    block_timestamp,
    tx_id,
    Description
    from osmosis.core.fact_governance_votes t1 join osmosis.core.dim_vote_options t2 on t1.vote_option = t2.vote_id
    where proposal_id in ('362')
    and tx_status = 'SUCCEEDED'),

    validatorst as (
    select address as validator_address,
    label as validator_name,
    raw_metadata[0]['account_address']::string as Account_Address,
    raw_metadata[0]['rank']::string as Rank,
    raw_metadata[0]['uptime']['address']::string as Proposer
    from osmosis.core.dim_labels
    where label_subtype = 'validator'),

    secondvotes as (
    select distinct t1.voter,
    t1.block_timestamp,
    t1.tx_id,
    t2.Description
    from osmosis.core.fact_governance_votes t1 join osmosis.core.dim_vote_options t2 on t1.vote_option = t2.vote_id
    join firstvotes t3 on t1.voter = t3.voter and t1.block_timestamp > t3.block_timestamp and t2.description != t3.description
    where proposal_id in ('362')
    and tx_status = 'SUCCEEDED')

    select 'from "' || t1.description || '" to "' || t2.description ||'"' as changing,
    count (distinct t1.voter) as Voters_Count
    from firstvotes t1 join secondvotes t2 on t1.voter = t2.voter and t1.description != t2.description and t2.block_timestamp > t1.block_timestamp
    where t1.voter in (select Account_Address from validatorst)
    group by 1
    order by 2 desc

    Run a query to Download Data