WITH weekly_buyers AS (
SELECT
DATE_TRUNC('week', block_timestamp) AS week,
COUNT(DISTINCT to_address) AS number_of_buyers
FROM
BASE.core.ez_token_transfers
WHERE
CONTRACT_ADDRESS = lower('0x315B8c9A1123c10228d469551033440441b41F0b')
GROUP BY
week
),
weekly_price AS (
SELECT
DATE_TRUNC('week', hour) AS week,
AVG(price) AS average_price
FROM
BASE.price.ez_prices_hourly
WHERE
TOKEN_ADDRESS =lower('0x315B8c9A1123c10228d469551033440441b41F0b')
GROUP BY
week
)
SELECT
b.week,
b.number_of_buyers,
p.average_price,
(b.number_of_buyers / p.average_price) * 100 AS buyers_to_price_ratio
FROM
weekly_buyers b
JOIN
weekly_price p
ON
b.week = p.week
ORDER BY
b.week