Если вы уверены, что ожидаете только три тестовых столбца в выходных данных, а ваша база данных поддерживает ROW_NUMBER
, тогда мы можем попробовать:
WITH cte AS (
SELECT SampleID, Test, Result,
ROW_NUMBER() OVER (PARTITION BY SampleID ORDER BY Test) rn
FROM [tblSartoriusFinal]
)
SELECT
SampleID,
MAX(CASE WHEN rn = 1 THEN Result END) AS Test1,
MAX(CASE WHEN rn = 2 THEN Result END) AS Test2,
MAX(CASE WHEN rn = 3 THEN Result END) AS Test3
FROM cte
GROUP BY
SampleID;
Демонстрация
Вышеприведенная демонстрация предназначена для SQL Server, но она должна работать без изменений, необходимых для Oracle, Postgres, MySQL 8+,и, возможно, несколько других.