Aracılığıyla paylaş


APPROX_PERCENTILE_DISC (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL analytics endpoint in Microsoft FabricWarehouse in Microsoft FabricSQL 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