Kruys-CollinsNew Users vs Returning Users Across
Updated 2024-11-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 UserActivity AS (
SELECT
DATE_TRUNC(DAY, BLOCK_TIMESTAMP) AS activity_date,
SENDER AS address
FROM ethereum.defi.ez_bridge_activity
WHERE bridge_address = LOWER('0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5')
UNION ALL
SELECT
DATE_TRUNC(DAY, BLOCK_TIMESTAMP) AS activity_date,
RECEIVER AS address
FROM ethereum.defi.ez_bridge_activity
WHERE bridge_address = LOWER('0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5')
),
FirstTransactionDates AS (
SELECT
SENDER AS address,
MIN(DATE_TRUNC(DAY, BLOCK_TIMESTAMP)) AS first_transaction_date
FROM ethereum.defi.ez_bridge_activity
WHERE bridge_address = LOWER('0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5')
GROUP BY SENDER
UNION ALL
SELECT
RECEIVER AS address,
MIN(DATE_TRUNC(DAY, BLOCK_TIMESTAMP)) AS first_transaction_date
FROM ethereum.defi.ez_bridge_activity
WHERE bridge_address = LOWER('0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5')
GROUP BY RECEIVER
)
SELECT
COALESCE(UA.activity_date, FTD.first_transaction_date) AS date,
COUNT(DISTINCT UA.address) AS "ACTIVE USERS",
COUNT(DISTINCT FTD.address) AS "NEW USERS",
COUNT(DISTINCT UA.address) - COUNT(DISTINCT FTD.address) AS "RETURNING USERS"
FROM UserActivity UA
FULL OUTER JOIN FirstTransactionDates FTD
ON UA.activity_date = FTD.first_transaction_date
QueryRunArchived: QueryRun has been archived