winnie-fs2024-01-18 09:12 AM
Updated 2024-01-18
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
›
⌄
with
-- ETH
A as( select block_timestamp, eth_from_address as whale, eth_to_address as bridge from ethereum.core.ez_eth_transfers union all
select block_timestamp, eth_to_address as whale, eth_from_address as bridge from ethereum.core.ez_eth_transfers union all
select block_timestamp, from_address as whale, to_address as bridge from ethereum.core.ez_token_transfers union all
select block_timestamp, to_address as whale, from_address as bridge from ethereum.core.ez_token_transfers
),
B as( select whale, min(block_timestamp) as first_time
from A
where bridge in ( '0xae0ee0a63a2ce6baeeffe56e7714fb4efe48d419',
'0xf6080d9fbeebcd44d89affbfd42f098cbff92816',
'0x283751a21eafbfcd52297820d27c1f1963d9b5b4',
'0x0437465dfb5b79726e35f08559b0cbea55bb585c',
'0xbb3400f107804dfb482565ff1ec8d8ae66747605',
'0xbf67f59d2988a46fbff7ed79a621778a3cd3985b',
'0xcf58536d6fab5e59b654228a5a4ed89b13a876c2')
group by 1),
C as( select date_trunc('month',first_time) as day, count(*) as new_user
from B
group by 1),
D as( select *, sum(new_user) over (order by day) as total_user
from C)
select day,
new_user as "New users",
total_user as "Total users",
total_user - new_user as "Retained users"
from D
order by day desc