nickpayiatis_Asset Holders
    Updated 2022-10-19
    select distinct case
    when asset.address = asa.creator_address and label.address is not null
    then '(CREATOR) - ' || label.address_name
    when asset.address = asa.creator_address and label.address is null
    then '(CREATOR) - ' || asset.address
    when asset.address <> asa.creator_address and label.address is not null
    then label.address_name || ' - ' || asset.address
    when asset.address <> asa.creator_address and label.address is null
    then asset.address
    else
    asset.address
    end as address,
    block.block_timestamp::date as "Opt In Date",
    asset.amount/POW(10,asa.decimals) as AMOUNT,
    AMOUNT / asa.total_supply * 100 as "Percent of Supply Held",
    case when asset.address = asa.creator_address then 0
    else AMOUNT / (asa.total_supply -
    (select amount from flipside_prod_db.algorand.account_asset asset2
    left join flipside_prod_db.algorand.asset asa2 on asset2.asset_id = asa2.asset_id
    where asset2.asset_id = {{ASA_ID}}
    and asa2.creator_address = asset2.address ))
    * 100
    end as "Percent of Circulating Supply Held"
    FROM flipside_prod_db.algorand.account_asset asset
    left join flipside_prod_db.algorand.block block on asset.asset_added_at = block.block_id
    left join flipside_prod_db.algorand.asset asa on asset.asset_id = asa.asset_id
    left join flipside_prod_db.algorand.labels label on asset.address = label.address
    where asset.asset_id = {{ASA_ID}}
    and asset.amount > 0
    order by amount desc

    Run a query to Download Data