Afonso_DiazRetention Rate
Updated 2024-08-09
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
main as (
select
tx_id,
block_timestamp,
nvl(from_amount_usd, to_amount_usd) as amount_usd,
from_address as user,
from_asset as symbol_in,
to_asset as symbol_out,
iff(symbol_in > symbol_out, symbol_in || ' - ' || symbol_out, symbol_out || ' - ' || symbol_in) as pair
from thorchain.defi.fact_swaps
where block_timestamp::date between '{{ start_date }}' and '{{ end_date }}'
and amount_usd <= 1e6
and affiliate_address = 'lifi'
),
user_activity AS (
SELECT
user,
date_trunc('{{ period }}', block_timestamp) AS date_start
FROM main
GROUP BY user, date_start
)
SELECT
a.date_start AS start_date,
COUNT(DISTINCT a.user) AS active_users,
COUNT(DISTINCT b.user) AS retained_users,
(COUNT(DISTINCT b.user) * 100.0 / COUNT(DISTINCT a.user)) AS retention_rate
FROM user_activity a
LEFT JOIN user_activity b
ON a.user = b.user
AND a.date_start = b.date_start + INTERVAL '1 {{ period }}'
GROUP BY a.date_start
ORDER BY a.date_start
QueryRunArchived: QueryRun has been archived