Executando verificação de segurança...
1

[DÚVIDA] Dúvida com query SQL para fazer um PIVOT

Fala moçada, estou com dúvida sobre como fazer uma query em SQL para mostrar os dados, que estão como na primeira tabela, da forma como na segunda tabela. É possível fazer isso? Só tem um resultado possivel para cada conjunto (hora, minuto)

Dados Originais:

horaminutoresultado
130result_13_0
1315result_13_15
1330result_13_30
1345result_13_45
140result_14_0
1415result_14_15
1430result_14_30
1445result_14_45
150result_15_0
1515result_15_15
1530result_15_30
1545result_15_45

Como eu quero mostrar:

0153045
15result_15_0result_15_15result_15_30result_15_45
14result_14_0result_14_15result_14_30result_14_45
13result_13_0result_13_15result_13_30result_13_45
Carregando publicação patrocinada...
2

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;