Abbas_ra21Swappers by Time
Updated 2024-10-04
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 trader_first_activity AS (
-- Get the first time each trader appeared in the dataset
SELECT
TRADER,
MIN(DATE_TRUNC('{{Interval}}', block_timestamp)) AS first_trade_timestamp
FROM
near.defi.ez_dex_swaps
GROUP BY
TRADER
),
weekly_data AS (
-- Determine whether a trader is new or existing based on the current week
SELECT
first_trade_timestamp AS DATE,
count(DISTINCT TRADER) AS "New traders",
sum("New traders") over (order by Date) AS "Total Users"
from trader_first_activity
GROUP by 1
),
new_old_trader_counts AS (
-- Count the number of new and old traders per week
SELECT
DATE_TRUNC('{{Interval}}', block_timestamp) AS DATE,
count(DISTINCT TRADER) AS traders
FROM
near.defi.ez_dex_swaps where block_timestamp between '{{START_DATE}}' and '{{END_DATE}}'
group by 1
)
SELECT
Date,
"New traders",
traders-"New traders" AS "Old Traders",
"Total Users"
from weekly_data inner join new_old_trader_counts using (DATE)
QueryRunArchived: QueryRun has been archived