with tab1 as (
SELECT
date_trunc('day', block_timestamp) as day,
proposer,
count(DISTINCT tx_id) as tx
FROM flow.core.fact_transactions
GROUP BY 1,2
), tab2 as (
SELECT
proposer,
MAX(tx) as max_tx
FROM tab1
GROUP BY 1
)
SELECT
CASE WHEN max_tx > 50 then 'Bot' ELSE 'Non-Bot' END,
count(*)
FROM tab2
GROUP BY 1