SQL Server中位数、標準差、平均数
4719 ワード
create table examines
(
[e_id] [int] IDENTITY(1,1) NOT NULL,
[dept_name] [nvarchar](200) NULL,
[ph_score] [int] NULL
)
SELECT
dept_name,
AVG(sp) as ' '
FROM
(
SELECT
dept_name,
cast(ph_score as decimal(5,2)) sp,
ROW_NUMBER() OVER (
PARTITION BY dept_name
ORDER BY ph_score ASC, e_id ASC) AS RowAsc,
ROW_NUMBER() OVER (
PARTITION BY dept_name
ORDER BY ph_score DESC, e_id DESC) AS RowDesc
FROM examines SOH
) x
WHERE
RowAsc IN (RowDesc, RowDesc - 1, RowDesc + 1)
GROUP BY dept_name
ORDER BY dept_name;
select dept_name,STDEV(ph_score) as ' ' from examines group by dept_name
select dept_name,avg(ph_score) as ' ' from examines group by dept_name
転載先:https://www.cnblogs.com/mycing/p/4871733.html