Χρησιμοποιώ NTILE(100)
για να υπολογίσω την τιμή του 95ου εκατοστημόριου στη στήλη μου. Σε ορισμένες περιπτώσεις όπου ο αριθμός των εγγραφών είναι μικρότερος από 100, το NTILE(100)
επιστρέφει ένα NULL όταν υποβάλλεται ερώτημα για τις τιμές στο 95ο τεταρτημόριο επειδή δεν υπάρχουν αρκετές τιμές. Αυτή τη στιγμή το κάνω με τον εξής τρόπο:
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
Αναρωτιόμουν ποιο είναι το αποδεκτό πρότυπο για το χειρισμό μιας υπόθεσης με λιγότερες από 100 τιμές στη στήλη. Οποιεσδήποτε προτάσεις?