SQL Server で中央値を計算する関数 質問する

SQL Server で中央値を計算する関数 質問する

MSDNによると、Median は Transact-SQL の集計関数として使用できません。ただし、この機能を作成できるかどうかを確認したいと思います ( Create Aggregate関数、ユーザー定義関数、またはその他の方法を使用)。

これを行うための最良の方法 (可能であれば) は何でしょうか - 集計クエリで中央値 (数値データ型を想定) を計算できるようにすることですか?

ベストアンサー1

SQL 2005 以降を使用している場合、これはテーブル内の単一列のシンプルでわかりやすい中央値の計算です。

SELECT
(
 (SELECT MAX(Score) FROM
   (SELECT TOP 50 PERCENT Score FROM Posts ORDER BY Score) AS BottomHalf)
 +
 (SELECT MIN(Score) FROM
   (SELECT TOP 50 PERCENT Score FROM Posts ORDER BY Score DESC) AS TopHalf)
) / 2 AS Median

おすすめ記事