SQL Server 2008 R2中的百分位数

时间:2018-10-30 13:25:38

标签: sql-server sql-server-2008-r2 percentile

我要查询的内容很陌生,因此请帮助我进行此查询。 我想要SQL Server 2008 R2中三列的百分位数,如果在SQL Server 2008 R2中无法做到这一点,那么phpMyAdmin是另一个选择

以下是列的示例:

A   J   C
5   1   1
1   5   4
3   22  10
3   1   3
5   103 117
3   20  156
4   3   1
37  2   9
1   2   18

请帮助我,将非常感激。

1 个答案:

答案 0 :(得分:0)

假设表名是table1,则可以将以下sql查询与分析函数一起使用,其中A,J,C是表的列名。

select A/sA*100.0 PA,J/sJ*100.0 PJ,C/sC*100.0 PC from ( select A,sum(A) over () sA,J,sum(J) over() sJ,C,sum (C) over() sC from table1 )

以下是不使用解析函数的同一版本的另一版本(已通过MySQL 5.7测试):交叉连接:

select (T.A/X.sA)*100 as PA,(T.J/X.sJ)*100 as PJ,(T.C/X.sC)*100 as PC from table1 T cross join (Select sum(A) as sA,sum(J) as sJ,sum(C) as sC from table1) X