3

値のリストから中央値を計算する T-SQL クエリ (SQL Server データベースを実行しています) に取り組んでいます。クエリは次のようになります。

SELECT 
   PERCENTILE_CONT(0.5) OVER (ORDER BY age) as Age 
FROM 
   peopleDB 
WHERE 
   <expressions>;

データベースには 100 行あります。クエリは中央値 (同じ値) を 100 回返しますが、私の目標はそれを 1 回だけ返すことです。DISTINCTandをさまざまな方法で使用しようとしましGROUP BYたが、毎回構文エラーが返されます。DISTINCT現在、データベースではサポートされていません。

明らかなことを見落としている可能性はありますか?

4

3 に答える 3

0

TSLについては聞いたことがありません。ただし、次のいずれかが機能する場合があります。

SELECT PERCENTILE_CONT(0.5) OVER (ORDER BY age) as Age
FROM peopleDB
WHERE <expressions>
limit 1;

SELECT top 1 PERCENTILE_CONT(0.5) OVER (ORDER BY age) as Age
FROM peopleDB
WHERE <expressions>;

SELECT max(PERCENTILE_CONT(0.5) OVER (ORDER BY age)) as Age
FROM peopleDB
WHERE <expressions>;

select max(age)
from (SELECT top 1 PERCENTILE_CONT(0.5) OVER (ORDER BY age) as Age
      FROM peopleDB
      WHERE <expressions>
     ) t
于 2013-06-25T01:59:59.350 に答える