Minimal reproduzierbares Beispiel:
Code: Select all
CREATE TABLE STATION (LAT_N DECIMAL(10,4));
INSERT INTO STATION VALUES (10.5), (20.3), (15.7), (25.1), (18.9);
Mein Code:
Code: Select all
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 zeigt nur „Syntaxfehler“ ohne spezifische Details an.
Was ich versucht habe:
- CTE separat getestet und es funktioniert einwandfrei
18,9000 (der Medianwert, gerundet auf 4 Dezimalstellen)
Mobile version