¿Cómo puedo escribir SQL en Oracle en mi caso?

Entonces, aquí están las tablas

create table person (
id number,
name varchar2(50)
);

create table injury_place (
id number,
place varchar2(50)
);

create table person_injuryPlace_map (
person_id number,
injury_id number
);

insert into person values (1, 'Adam');
insert into person values (2, 'Lohan');
insert into person values (3, 'Mary');
insert into person values (4, 'John');
insert into person values (5, 'Sam');


insert into injury_place values (1, 'kitchen');
insert into injury_place values (2, 'Washroom');
insert into injury_place values (3, 'Rooftop');
insert into injury_place values (4, 'Garden');


insert into person_injuryPlace_map values (1, 2);
insert into person_injuryPlace_map values (2, 3);
insert into person_injuryPlace_map values (1, 4);
insert into person_injuryPlace_map values (3, 2);
insert into person_injuryPlace_map values (4, 4);
insert into person_injuryPlace_map values (5, 2);
insert into person_injuryPlace_map values (1, 1);

Aquí, mesaperson_injuryPlace_map solo mapeará las otras dos tablas.

Cómo quería mostrar los datos es:

Kitchen   Pct      Washroom   Pct     Rooftop   Pct     Garden   Pct
-----------------------------------------------------------------------
1         14.29%   3          42.86%   1        14.29%   2        28.57%

Aquí, el valor de la columna Cocina, Baño, Azotea, Jardín es el total de incidentes ocurridos. Las columnas del PCT mostrarán el porcentaje del recuento total.

¿Cómo puedo hacer esto en Oracle SQL?

Respuestas a la pregunta(4)

Su respuesta a la pregunta