Who survived?

extensional passenger(id: integer, survived: integer, class: integer, sex: string, fare: float).

Since survived is 0 or 1, its average is the survival rate:

survival_by_sex(Sex, avg(Survived), count(_)) :-
    passenger(_, Survived, _, Sex, _).
SexrateN
female0.74314
male0.19577
survival_by_class(Class, avg(Survived), count(_)) :-
    passenger(_, Survived, Class, _, _).
classrateN
10.63216
20.47184
30.24491