Минимально воспроизводимый пример:
Код: Выделить всё
CREATE TABLE STATION (LAT_N DECIMAL(10,4));
INSERT INTO STATION VALUES (10.5), (20.3), (15.7), (25.1), (18.9);
Мой код:
Код: Выделить всё
WITH CNT AS(
SELECT COUNT(*) AS N
FROM STATION
)
SELECT ROUND(
CASE
WHEN N % 2 = 1 THEN (
SELECT LAT_N
FROM STATION
ORDER BY LAT_N ASC
LIMIT 1 OFFSET (N DIV 2)
)
ELSE (
SELECT AVG(LAT_N) FROM(
SELECT LAT_N
FROM STATION
ORDER BY LAT_N ASC
LIMIT 2 OFFSET ((N - 1) DIV 2)
)
AS TEMP
)
END, 4
) AS MED
FROM CNT;
HackerRank показывает только «Синтаксическую ошибку» без конкретных подробностей.
Что я пробовал:
- Проверил CTE отдельно, он работает нормально
18,9000 (среднее значение, округленное до 4 десятичных знаков)
Подробнее здесь: https://stackoverflow.com/questions/797 ... ysql-query
Мобильная версия