Bera TeamShare of Users (Retention)
Updated 2025-01-31
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
›
⌄
-- Retention
WITH user_first_transaction AS (
SELECT
From_address,
MIN(DATE(block_timestamp)) AS first_transaction_date
FROM
berachain.testnet.fact_transactions
GROUP BY
From_address
),
-- Step 2: Identify the subsequent transactions for each user
user_transactions AS (
SELECT
t.From_address,
DATE(t.block_timestamp) AS transaction_date,
uft.first_transaction_date
FROM
berachain.testnet.fact_transactions t
JOIN
user_first_transaction uft
ON
t.From_address = uft.From_address
)
-- Step 3: Calculate retention counts
SELECT
'Day 1' AS retention_period,
COUNT(DISTINCT CASE WHEN transaction_date = DATEADD(day, 1, first_transaction_date) THEN From_address END) AS retention_count
FROM
user_transactions
UNION ALL
SELECT
'Day 2' AS retention_period,
COUNT(DISTINCT CASE WHEN transaction_date = DATEADD(day, 2, first_transaction_date) THEN From_address END) AS retention_count
FROM
QueryRunArchived: QueryRun has been archived