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 2019 (15.x)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric
SQL database in Microsoft Fabric
Bu fonksiyon, bir grupta yaklaşık olarak sıfır olmayan benzersiz değerlerin sayısını döndürür.
Transact-SQL söz dizimi kuralları
Sözdizimi
APPROX_COUNT_DISTINCT ( expression )
Arguments
expression
Görüntü, sql_variant, ntext veya metin hariç herhangi bir tür ifade.
Dönüş türleri
bigint
Açıklamalar
APPROX_COUNT_DISTINCT( expression ) bir gruptaki her satır için bir ifade değerlendirir ve bir gruptaki sıfır olmayan benzersiz değerlerin yaklaşık sayısını döndürür. Bu fonksiyon, yanıt vermenin mutlak hassasiyetten daha kritik olduğu büyük veri setlerinde toplamalar sağlamak için tasarlanmıştır.
APPROX_COUNT_DISTINCT Büyük veri senaryolarında kullanılmak üzere tasarlanmıştır ve aşağıdaki koşullar için optimize edilmiştir:
- Milyonlarca satır veya daha fazla veri setine erişim ve
- Birçok farklı değere sahip bir sütun veya sütunların toplanması
Fonksiyon uygulaması, 97% olasılık içinde 2% hata oranı garanti eder.
APPROX_COUNT_DISTINCT kapsamlı bir COUNT DISTINCT işleminden daha az bellek gerektirir. Daha küçük bellek alanı göz önüne alındığında, APPROX_COUNT_DISTINCT kesin bir COUNT DISTINCT işlemine kıyasla belleği diske dökme olasılığı daha düşüktür. Bunu başarmak için kullanılan algoritma hakkında daha fazla bilgi edinmek için HyperLogLog'a bakınız.
Uyarı
Toplamaya duyarlı dizelerde APPROX_COUNT_DISTINCT, ikili eşleşme kullanır ve BIN derlemelerinin varlığında elde edilecek sonuçları sağlar, BIN2 değil.
Örnekler
A. Kullanım APPROX_COUNT_DISTINCT
Bu örnek, sipariş tablosundan farklı emiş anahtarlarının yaklaşık sayısını geri getirir.
SELECT APPROX_COUNT_DISTINCT(O_OrderKey) AS Approx_Distinct_OrderKey
FROM dbo.Orders;
Sonuç kümesi aşağıdadır.
Approx_Distinct_OrderKey
------------------------
15164704
B. GROUP BY ile APPROX_COUNT_DISTINCT kullanmak
Bu örnek, sipariş tablosundan farklı emir anahtarlarının yaklaşık sayısını emir durumuna göre döndürür.
SELECT O_OrderStatus, APPROX_COUNT_DISTINCT(O_OrderKey) AS Approx_Distinct_OrderKey
FROM dbo.Orders
GROUP BY O_OrderStatus
ORDER BY O_OrderStatus;
Sonuç kümesi aşağıdadır.
O_OrderStatus Approx_Distinct_OrderKey
---------------------------------------------------------------- ------------------------
F 7397838
O 7387803
P 388036