m0rt3zaPooly NFT holder distribution
Updated 2022-06-22
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
›
⌄
WITH pooly_tokens AS (
SELECT nft_address, tokenid, max(block_timestamp) AS last_transfer
FROM ethereum.core.ez_nft_transfers
WHERE nft_address in ('0x3545192b340f50d77403dc0a64cf2b32f03d00a9',
'0x5663e3e096f1743e77b8f71b5de0cf9dfd058523',
'0x90b3832e2f2ade2fe382a911805b6933c056d6ed')
GROUP BY nft_address, tokenid
), pooly_transfers AS (
SELECT nft_address, tokenid, nft_to_address, block_timestamp
FROM ethereum.core.ez_nft_transfers
WHERE nft_address in ('0x3545192b340f50d77403dc0a64cf2b32f03d00a9',
'0x5663e3e096f1743e77b8f71b5de0cf9dfd058523',
'0x90b3832e2f2ade2fe382a911805b6933c056d6ed')
), pooly_holders AS (
SELECT f.nft_address, f.tokenid, f.last_transfer, b.nft_to_address as holder
FROM pooly_tokens as f INNER JOIN pooly_transfers as b ON
f.nft_address = b.nft_address AND f.tokenid = b.tokenid AND f.last_transfer = b.block_timestamp
), holders AS (
SELECT holder, COUNT(*) AS nft_count,
CASE
WHEN nft_count < 2 THEN '1'
WHEN nft_count < 5 THEN '1-5'
WHEN nft_count < 10 THEN '5-10'
ELSE '10 <' END AS holder_bins
FROM pooly_holders
GROUP BY holder
)
SELECT holder_bins, sum(nft_count)
FROM holders
GROUP BY holder_bins
Run a query to Download Data