Aqui está a implementação utilizando SQL Server, e aqui o link para a documentação da Microsoft.
DROP TABLE IF EXISTS #TabelaValores;
CREATE TABLE #TabelaValores
(
hora TINYINT,
minuto TINYINT,
resultado VARCHAR(20),
PRIMARY KEY (hora, minuto)
);
INSERT INTO #TabelaValores VALUES
(13, 0, 'result_13_0'),
(13, 15, 'result_13_15'),
(13, 30, 'result_13_30'),
(13, 45, 'result_13_45'),
(14, 0, 'result_14_0'),
(14, 15, 'result_14_15'),
(14, 30, 'result_14_30'),
(14, 45, 'result_14_45'),
(15, 0, 'result_15_0'),
(15, 15, 'result_15_15'),
(15, 30, 'result_15_30'),
(15, 45,'result_15_45');
SELECT
hora, [0], [15], [30], [45]
FROM (
SELECT
hora, minuto, resultado
FROM
#TabelaValores
) p
PIVOT
(
MIN(resultado) FOR minuto IN ([0], [15], [30], [45])
) AS piv
ORDER BY
hora DESC
DROP TABLE IF EXISTS #TabelaValores;