create table temp
(
id int identity(1,1),
a decimal(6,2),
b decimal(6,2),
c decimal(6,2),
d decimal(6,2),
e decimal(6,2),
f decimal(6,2),
g decimal(6,2),
h decimal(6,2),
i decimal(6,2),
j decimal(6,2),
k decimal(6,2),
l decimal(6,2),
m decimal(6,2),
n decimal(6,2),
o decimal(6,2),
p decimal(6,2),
q decimal(6,2),
r decimal(6,2),
s decimal(6,2),
t decimal(6,2),
u decimal(6,2)
)
Run Code Online (Sandbox Code Playgroud)
insert into temp
(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u)
values
(1,5,6,7,8,2,6,3,4,5,2,1,6,5,7,8,2,7,6,2,8)
insert into temp
(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u)
values
(1,5,6,7,8,2,2,3,2,4,2,1,4,5,9,8,2,7,6,2,8)
Run Code Online (Sandbox Code Playgroud)
Median
======
first row - 5.00
second row - 4.00
Run Code Online (Sandbox Code Playgroud)
我尝试了以下查询,该查询在 SQL Server 2014 …
我试过下面的查询,但显示的中值是错误的。
select
(select cast(Avg(TotAvg * 1.0 )as decimal(6,2))
from (values (convert(decimal(6,2), a)),(convert(decimal(6,2), b))
,(convert(decimal(6,2), c)),(convert(decimal(6,2), d))
,(convert(decimal(6,2), e)),(convert(decimal(6,2), f))
,(convert(decimal(6,2), g)),(convert(decimal(6,2), h))
,(convert(decimal(6,2), i)),(convert(decimal(6,2), j))
,(convert(decimal(6,2), k)),(convert(decimal(6,2), l))
,(convert(decimal(6,2), m)),(convert(decimal(6,2), n))
,(convert(decimal(6,2), o)),(convert(decimal(6,2), p))
,(convert(decimal(6,2), q)),(convert(decimal(6,2), r))
,(convert(decimal(6,2), s)),(convert(decimal(6,2), t))
,(convert(decimal(6,2), u))
) as Totalavg(TotAvg)
) as Median
from temp
Run Code Online (Sandbox Code Playgroud)
列值是一行中的 a 到 u。
First row - 1,5,6,7,8,2,6,3,4,5,2,1,6,5,7,8,2,7,6,2,8
Second row - 1,5,6,7,8,2,2,3,2,4,2,1,4,5,9,8,2,7,6,2,8
Run Code Online (Sandbox Code Playgroud)
create table temp
(
id int identity(1,1),
a decimal(6,2),
b decimal(6,2),
c decimal(6,2),
d decimal(6,2), …Run Code Online (Sandbox Code Playgroud)