WITH daily_active_addresses AS (
SELECT
DATE_TRUNC('DAY', block_timestamp) AS activity_date,
from_address AS address
FROM ronin.core.fact_transactions
UNION
SELECT
DATE_TRUNC('DAY', block_timestamp) AS activity_date,
to_address AS address
FROM ronin.core.fact_transactions
)
SELECT
activity_date,
COUNT(DISTINCT address) AS daily_active_addresses,
SUM(COUNT(DISTINCT address)) OVER (ORDER BY activity_date) AS cumulative_active_addresses
FROM daily_active_addresses
GROUP BY activity_date
ORDER BY activity_date DESC;