小编use*_*865的帖子

T-SQL中的中值

对于偶数行,下表的中位数公式为(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)

sql t-sql sql-server-2008

6
推荐指数
2
解决办法
1万
查看次数

空白而不是零

Duration = isnull(FunctionA(DateA,DateB),'')
Run Code Online (Sandbox Code Playgroud)

上面的函数计算天数,如果day为null,则显示值0而不是空值

如何将上面的代码更改为显示空白而不是0表示null?

t-sql sql-server-2008

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

sql-server-2008 ×2

t-sql ×2

sql ×1