Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre: 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
Ez a függvény a csoportban az egyedi, nem null értékek közelítő számát adja vissza.
Transact-SQL szintaxis konvenciók
Szemantika
APPROX_COUNT_DISTINCT ( expression )
Arguments
kifejezés
Bármilyen típusú kifejezés , kivéve a képet, sql_variant, ntextet vagy szöveget.
Visszatérési típusok
bigint
Megjegyzések
APPROX_COUNT_DISTINCT( expression ) minden sorra értékel egy kifejezést egy csoportban, és adja vissza a csoportban az egyedi, nem null értékek közelítő számát. Ez a funkció arra van tervezve, hogy aggregációkat biztosítson nagy adathalmazokon keresztül, ahol a válaszadás kritikusabb, mint abszolút pontosság.
APPROX_COUNT_DISTINCT nagy adathelyzetekre tervezték, és az alábbi feltételekre optimalizált:
- olyan adathalmazokhoz való hozzáférés, amelyek több millió sorból állnak és
- Egy oszlop vagy oszlopok aggregálása, amelyek sok különböző értékkel rendelkeznek
A funkció megvalósítása akár 2% hibaarányt garantál egy 97% valószínűségen belül.
APPROX_COUNT_DISTINCT kevesebb memóriát igényel, mint egy kimerítő COUNT DISTINCT művelet. Mivel kisebb memória felület APPROX_COUNT_DISTINCT , kisebb valószínűséggel terjed ki a memória lemezre, mint egy pontos COUNT DISTINCT művelet. Ha többet szeretnél megtudni az ehhez használt algoritmusról, lásd a HyperLogLog-ot.
Megjegyzés:
A kollációérzékeny láncsorok esetén APPROX_COUNT_DISTINCT bináris egyezést használ, és olyan eredményeket ad, amelyeket BIN összeállítások jelenlétében generáltak, nem pedig BIN2 esetén.
Példák
A. Használat APPROX_COUNT_DISTINCT
Ez a példa a rendelési táblából származó különböző sorrendkulcsok közelítő számát adja vissza.
SELECT APPROX_COUNT_DISTINCT(O_OrderKey) AS Approx_Distinct_OrderKey
FROM dbo.Orders;
Itt van az eredmények összessége.
Approx_Distinct_OrderKey
------------------------
15164704
B. Használat APPROX_COUNT_DISTINCT GROUP BY-val
Ez a példa a rendelési táblából adja vissza a különböző rendelési kulcsok közelítő számát rendelési státusz szerint.
SELECT O_OrderStatus, APPROX_COUNT_DISTINCT(O_OrderKey) AS Approx_Distinct_OrderKey
FROM dbo.Orders
GROUP BY O_OrderStatus
ORDER BY O_OrderStatus;
Itt van az eredmények összessége.
O_OrderStatus Approx_Distinct_OrderKey
---------------------------------------------------------------- ------------------------
F 7397838
O 7387803
P 388036