you could do something like this:

    SELECT a.neighborhood_id
          ,a.neighborhood_name
          ,count(b.event_id) AS event_count
    FROM   "tblNeighborhoods"  a
    LEFT   JOIN "tblEvents" b USING (neighborhood_id)
    WHERE  a.neighborhood_id = x 
    GROUP  BY a.neighborhood_id, a.neighborhood_name

and so on depending on what group you're trying to count

another possibility would be to create additional linkage tables on the containing the ids of the tables containing the categories and the instances you're trying to count.
in this case you'd create your linkage table with 2 columns, one to contain each id. then you could select a count from the linkage table like so:

    SELECT count(*) as instance_count 
    FROM linktable 
    WHERE category_id = x