TSL / SQL PERCENTILE_CONT sollte 1 datasatz zurückgeben

Ich arbeite an einer T-SQL-Abfrage (ich laufe eine SQL server-database), die den Median aus einer list von Werten berechnen sollte. Die Abfrage sieht so aus:

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

Die database hat 100 Zeilen. Die Abfrage gibt den Median (denselben Wert) 100 Mal zurück, aber mein Ziel ist es, es nur einmal zurückzugeben. Ich habe versucht, DISTINCT und GROUP BY in einer Vielzahl von Möglichkeiten zu verwenden, aber es gibt Syntaxerrors jedes Mal zurück. DISTINCT wird derzeit nicht von der database unterstützt.

Gibt es eine Chance, dass ich etwas Ähnliches übersehen werde?

Ich habe noch nie von TSL gehört. Aber eines der folgenden könnte funktionieren:

 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 

Versuche eine leere Überklausel.

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

Ich stieß auf die gleiche Frage und las das half mir, Lösung zu verwirklichen. Also die SQL-Syntax (wie ich nicht vertraut mit TSQL) zu deinem Problem ist:

 SELECT Distinct PERCENTILE_CONT(0.5) within group (ORDER BY age) over () as Age FROM peopleDB WHERE <expressions>; 

Für mich gearbeitet!