Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2022 (16.x)
Azure SQL Database
Azure SQL Managed Instance
SQL analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric
SQL database in Microsoft Fabric
Bu işlev, sağlanan yüzdebirlik ve sıralama belirtimini temel alarak bir gruptaki değer kümesinden değeri döndürür. Bu yaklaşık bir işlev olduğundan, çıkış belirli bir güvene bağlı derece tabanlı hata içinde olacaktır. Bu yaklaşık yüzdebirlik değer, sütun değerlerinin ayrık dağılımına dayandığı için çıkış değeri sütundaki belirli değerlerden birine eşit olacaktır. Bu işlev, yavaş yanıt süresine sahip doğru yüzdebirlik değeriyle karşılaştırıldığında daha hızlı yanıtla göz ardı edilebilir hatanın kabul edilebilir olduğu büyük veri kümeleri için PERCENTILE_DISC alternatif olarak kullanılabilir.
Transact-SQL söz dizimi kuralları
Sözdizimi
APPROX_PERCENTILE_DISC (numeric_literal)
WITHIN GROUP (ORDER BY order_by_expression [ASC|DESC])
Tartışma
numeric_literal
İşlem için yüzdebirlik. Değer 0,0 ile 1,0 arasında olmalıdır. 10. yüzdebirlik değeri hesaplamak için geçirilen değer 0,10 olur.
order_by_expression
Yüzdebirlik değeri sıralamak ve hesaplamak için değerlerin listesini belirtir. Varsayılan sıralama düzeni artandır (ASC). Yalnızca sayısal veri türlerine izin verilir. İfade, başka veri türlerine izin verilmeden desteklenen bir tam veya yaklaşık sayısal türe değerlendirilmelidir. Tam olarak desteklenen sayısal türler int, bigint, smallint, tinyint, bit, smallmoney ve money'dır. Desteklenen yaklaşık sayısal türler float ve real'dır. Ondalık ve kayan veri türleri desteklenmez.
Dönüş türleri
Dönüş türü , order_by_expression türüne göre belirlenir.
Açıklamalar
Veri kümesindeki tüm null değerler yoksayılır.
Yaklaşık yüzdebirlik işlevler KLL taslağını kullanır. Taslak, veri akışı okunarak oluşturulur.
Bu işlev, değer tabanlı olmayan derece tabanlı hata garantileri sağlar. İşlev uygulaması, 99% olasılık içinde en fazla 1,33% hata oranını garanti eder.
Bilinen davranışlar
İşlevlerin çıkışı tüm yürütmelerde aynı olmayabilir. Bu işlevler için kullanılan algoritma, rastgele bir algoritma olan KLL taslağıdır . Taslak her oluşturulduğunda rastgele değerler seçilir. Bu işlevler değer tabanlı değil derece tabanlı hata garantileri sağlar.
İşlev uygulaması, 99% güven içinde en fazla 1,33% hata sınırlarını garanti eder.
Uyumluluk desteği
Uyumluluk düzeyi 110 ve üzeri altında, GRUP içinde ayrılmış bir anahtar sözcüktür. Daha fazla bilgi için bkz. ALTER DATABASE Uyumluluk Düzeyi (Transact-SQL)..
Örnekler
Aşağıdaki örnek bir tablo oluşturur, tabloyu doldurur ve örnek sorguyu çalıştırır.
SET NOCOUNT ON
GO
DROP TABLE IF EXISTS tblEmployee
GO
CREATE TABLE tblEmployee (
EmplId INT IDENTITY(1,1) PRIMARY KEY CLUSTERED,
DeptId INT,
Salary int);
GO
INSERT INTO tblEmployee
VALUES (1, 31),(1, 33), (1, 18), (2, 25),(2, 35),(2, 10), (2, 10),(3,1), (3,NULL), (4,NULL), (4,NULL)
GO
SELECT DeptId,
APPROX_PERCENTILE_DISC(0.10) WITHIN GROUP(ORDER BY Salary) AS 'P10',
APPROX_PERCENTILE_DISC(0.90) WITHIN GROUP(ORDER BY Salary) AS 'P90'
FROM tblEmployee
GROUP BY DeptId