How can I use COUNT in the same query with ROUND() and AVG()?
The current version gives you an error because you're trying to get one aggregate function (average) over another one (count) ; it's not related to round.  As far as I understand, you want to output id_theater, id_spectacle, count of tickets per theater and spectacle, and also average number of tickets per theater.  One way (most likely not the fastest from performance perspective) would be
with t1 as 
(SELECT
    t.id_theater
    , s.id_spectacle
   , COUNT(tick.id_ticket) as num_tickets
   
FROM
    tickets tick
    , theater t
    , spectacles s
WHERE
    tick.id_spectacle = s.id_spectacle
    AND t.id_theater = s.id_theater
GROUP BY
    t.id_theater
    , s.id_spectacle
)
select  id_theater,id_spectacle , num_tickets, ROUND(avg(num_tickets) over (partition by id_theater),2) as avg_per_theater
from t1

Also, I'd suggest using ANSI-92 join instead of ANSI-89 syntax, it's way more readable