WITH tab1 as (
SELECT
marketplace,
purchaser,
mint as m1,
max(block_timestamp) as max_buy,
min(block_timestamp) as min_buy,
datediff('day', min(block_timestamp), max(block_timestamp)) buy_time_diff,
count(*) as sales
FROM solana.core.fact_nft_sales
GROUP BY 1,2,3
)
SELECT
marketplace,
CASE WHEN buy_time_diff < 30 AND sales > 1 THEN 'Wash Sale'
ELSE 'Non Wash Sale' END as sales_type,
sum(sales) as sales,
COUNT(DISTINCT purchaser) as users
from tab1
--LIMIT 100
GROUP BY 1,2