【发布时间】:2019-11-26 17:02:36
【问题描述】:
下面的这段代码应该输出集合的中位数。你能告诉我哪里出错了吗?
这是来自hackerrank的原始问题:
https://www.hackerrank.com/challenges/weather-observation-station-20/problem
Declare @max_lat int;
With List as
(
Select LAT_N,Row_number() over (order by LAT_N) as rnk
from Station)
set @max_lat= (select max(rnk) from List);
select LAT_N from List
where rnk= ( case
when @max_lat%2=0 then @max_lat/2
when @max_lat%2=0 then (@max_lat/2)+1
else (@max_lat+1)/2
end);
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
-
另外请添加
CREATE TABLE语句来定义Station表(至少包括LAT_N列),INSERT语句以提供示例数据,以及收到的实际错误消息。 -
添加了实际问题的链接以检查您的答案
-
感谢您的链接,但如果该网站的条款允许,最好发布内容。否则我必须创建一个帐户才能看到问题(将来看到这个 StackOverflow 问题的其他人也是如此)
-
你的两个
CASE...WHEN条件是一样的。
标签: sql sql-server median with-statement