中位数定义为将数据集的上半部分与下半部分分开的数字。从 STATION 查询北纬度 (LAT_N) 的中位数,并将结果四舍五入到小数位。
输入格式
STATION表描述如下:
Field : Type
ID : NUMBER
CITY : VARCHAR2(21)
STATE : VARCHAR2(2)
LAT_N : NUMBER
LONG_W: NUMBER
其中 LAT_N 是北纬,LONG_W 是西经。
我只能设法获取中值的行索引
select floor((count(lat_n)+1)/2) from station;
即行索引 250。下一步是使用该值提取行索引 250 处的 lat_n 值。如何转换为 SQL?
对于 mySQL这会起作用,
SELECT ROUND(S1.LAT_N, 4)
FROM STATION AS S1
WHERE (SELECT ROUND(COUNT(S1.ID)/2) - 1
FROM STATION) =
(SELECT COUNT(S2.ID)
FROM STATION AS S2
WHERE S2.LAT_N > S1.LAT_N);
参考 :https://nikkesan.gitbook.io/hackerrank/practice-1/sql/aggregation/untitled-2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)