【发布时间】:2018-12-25 05:20:39
【问题描述】:
中位数定义为将数据集的上半部分与下半部分分开的数字。从 STATION 查询北纬 (LAT_N) 的中位数并将您的答案四舍五入到小数位。
输入格式
STATION表描述如下:
其中 LAT_N 是北纬,LONG_W 是西经。
我将查询写为:
select round(LAT_N,4) from (select LAT_N from station order by LAT_N) where ROWNUM = ((LENGTH(LAT_N)+1)/2);
我没有得到这个查询的输出。 谁能解释一下错误是什么?
【问题讨论】:
-
“错误答案”极不可能是来自 SQL 编译器的消息。 LENGTH() 函数与关系的基数完全不同,关系的基数必须使用 SELECT COUNT(*) FROM ... 您的解决方案是否可靠,取决于 ROWNUM 始终等于行的等级,可能不确定.
-
您使用哪个数据库服务器?请使用适当的标签。
-
我很想知道返回“错误答案”这样有趣的错误消息的编译器是什么:)
-
@DraganJovanović 甲骨文。我在网上练习。
-
@JoakimDanielson 对不起,我的错。编译器不会将错误答案作为错误抛出。因为我在网上练习所以它只是检查正确的输出。