对于偶数行,下表的中位数公式为(104.5 + 108)/ 2,对于奇数行,下表为108:
Total Total
100 100
101 101
104.5 104.5
108 108
108.3 108.3
112 112
114
Run Code Online (Sandbox Code Playgroud)
我写了这个查询,当行数为奇数时,它正在计算正确的中位数:
WITH a AS ( SELECT Total ,
ROW_NUMBER() OVER ( ORDER BY CAST(Total AS FLOAT) ASC ) rownumber
FROM [Table] A
),
b AS ( SELECT TOP 2
Total ,
isodd
FROM ( SELECT TOP 50 PERCENT
Total ,
rownumber % 2 isodd
FROM a
ORDER BY CAST(Total AS FLOAT) ASC
) a
ORDER BY CAST(total AS FLOAT) DESC
) …Run Code Online (Sandbox Code Playgroud) Duration = isnull(FunctionA(DateA,DateB),'')
Run Code Online (Sandbox Code Playgroud)
上面的函数计算天数,如果day为null,则显示值0而不是空值
如何将上面的代码更改为显示空白而不是0表示null?