I'm not quite sure I got your question right, but here's an attempt with hardcoded values for demonstration:
SELECT EventsTable.EventID, EventTitle, EventCrowd, Time, Day, VenueCapacity, VenueStyle, EventCrowd/VenueCapacity::float AS PercentCrowd
FROM (
VALUES (1, 'FooFighters', 1000), (2, 'BarFighters', 1000)
) EventsTable(EventID, EventTitle, EventCrowd)
INNER JOIN (
VALUES (1, 1, 2, 'XX:XX', 'XX'), (2, 2, 1, 'YY:YY', 'YY')
) TimeTable(TimeID, EventID, VenueID, Time, Day)
ON EventsTable.EventID = TimeTable.EventID
INNER JOIN (
VALUES (1, 2000, 'Something'), (2, 1100, 'Something Else')
) VenueTable(VenueID, VenueCapacity, VenueStyle)
ON TimeTable.VenueID = VenueTable.VenueID
GROUP BY EventsTable.EventID, EventTitle, EventCrowd, Time, Day, VenueCapacity, VenueStyle
HAVING EventCrowd/VenueCapacity::float < 0.8
As result this will give you
EventID EventTitle EventCrowd Time Day VenueCapacity VenueStyle PercentCrowd
2 BarFighters 1000 YY:YY YY 2000 Something 0,5