Ich verwende NTILE(100)
um den 95. Perzentilwert in meiner Spalte zu berechnen. In einigen Fällen, in denen die Anzahl der Datensätze weniger als 100 beträgt, NTILE(100)
gibt bei der Abfrage nach den Werten im 95. Quartil einen NULL-Wert zurück, da nicht genügend Werte vorhanden sind. Ich mache dies derzeit auf folgende Weise:
CREATE TABLE #Temp(val int)
GO
INSERT INTO #Temp(val) VALUES(1);
INSERT INTO #Temp(val) VALUES(2);
INSERT INTO #Temp(val) VALUES(3);
INSERT INTO #Temp(val) VALUES(4);
INSERT INTO #Temp(val) VALUES(5);
INSERT INTO #Temp(val) VALUES(6);
SELECT val, Quantile
FROM
(
SELECT val, NTILE(100) OVER (ORDER BY val) AS Quantile
FROM
#Temp
) A
WHERE Quantile=95
GO
DROP TABLE #Temp
Ich frage mich, was der akzeptierte Standard für die Behandlung eines Falls mit weniger als 100 Werten in der Spalte ist. Irgendwelche Vorschläge?