Puede dar a una consulta un nombre o alias con CTE (Expresiones de tabla comunes), también conocida como cláusula WITH, también conocida como factorización de subconsulta de Oracle:
WITH abc as (select client_ref_id, request from some_table where message_type = 1)
select *
from abc
inner join
(select client_ref_id, response from some_table where message_type = 2) defg
on abc.client_ref_id = def.client_ref_id;