Мне нужно получить participant_name
победителя за каждый race_name
из следующей таблицы
WITH race AS (
SELECT 'A' AS race_name, [4, 1, 3] as participant_id, [25.3, 29.4, 24.1] as timing UNION ALL
SELECT 'B', [2, 1, 4, 6], [16.3, 14.2, 17.4, 18.3] UNION ALL
SELECT 'C', [7, 5, 4, 2], [19.5, 21.4, 16.4, 15.6]
),
participant AS (
SELECT 1 as participant_id, 12 as participant_age, "Julie" as participant_name UNION ALL
SELECT 2, 11, "Max" UNION ALL
SELECT 3, 12, "John" UNION ALL
SELECT 4, 11, "Matt" UNION ALL
SELECT 5, 13, "Diana" UNION ALL
SELECT 6, 12, "Peter" UNION ALL
SELECT 7, 11, "Ben"
)
SELECT race_name,
(SELECT participant_name
FROM participant CROSS JOIN UNNEST(timing) AS duration
ORDER BY duration ASC
LIMIT 1
)
FROM race
Я получаю participant_name
участника с самым низким временем, но не по каждому race_name
. Как это исправить?