Du har brug for en særskilt række-id i den første tabel - måske er det blandt de andre kolonner. Det kan være en eller flere kolonner. Så kan du bruge count(distinct)
:
select tree_id,
count(distinct <unique row column>) filter (where count_if_true)
from t
group by tree_id;