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.
A következőkre vonatkozik:SQL Analytics-végpont a Microsoft Fabricben és a Microsoft Fabric warehouse-ban
A APPROX_MEDIAN függvény egy közelítő mediánt, vagyis 50. percentilist ad vissza, amely nemNULL numerikus értékeket tartalmaz. Összesítő függvényként és ablakfüggvényként (analitikus) is használható:
- Aggregált használat: Egy egész csoport közelítő mediánját adja.
- Ablakhasználat: Minden partícióhoz hozzávetőleges mediánt ad vissza, miközben megőrzi a sorszintű kimenetet.
Transact-SQL szintaxis konvenciók
Szemantika
Aggregációs függvény szintaxisa:
APPROX_MEDIAN ( numeric_expression )
Elemzési függvény szintaxisa:
APPROX_MEDIAN ( numeric_expression ) OVER ( [ <partition_by_clause> ] )
Arguments
numeric_expression
Az a numerikus kifejezés, amelynek közelítő mediánját kiszámítjuk. A támogatott pontos numerikus típusok , intbigint, smallint, tinyint, smallmoneynumericdecimal, és .money A támogatott közelítő numerikus típusok és floatreal.
OVER záradék
A partition_by_clause a záradék által FROM létrehozott eredményhalmazt partíciókra osztja, és a függvényt minden partícióra alkalmazza a rendszer.
Ha nem határozod meg partition_by_clause, a függvény a lekérdezés eredményhalmazának minden sorát egyetlen partícióként kezeli.
A OVER klauda nem támogatja ORDER BY, ROWS, vagy RANGE .APPROX_MEDIAN
További információ: SELECT – OVER záradék (Transact-SQL).
Visszatérési típusok
Visszatér float(53).
Remarks
APPROX_MEDIAN becslése a rendezett, nemNULL bemeneti értékek folyamatos 50. percentilisét.
Használd a MEDIAN-t, ha pontos eredményt szeretnél.
A közelítő eredmények kissé eltérhetnek a pontos MEDIAN eredményektől, és a végrehajtási tervek és párhuzamos összevonási útvonalak miatt eltérhetnek a végrehajtási tervek és a párhuzamos összeolvadási útvonalak miatt.
APPROX_MEDIAN nemdeterminista. További információ: Determinisztikus és nem determinisztikus függvények.
NULL az értékek figyelmen kívül lesznek hagyva. Ha minden bemeneti érték , NULLvagy ha egyetlen sor sem minősül, APPROX_MEDIAN akkor visszaadja NULL. Amikor ANSI_WARNINGS az , ONaz értékek kizárása NULL a standard aggregált figyelmeztetést eredményezi.
APPROX_MEDIAN célja, hogy csökkentse a késleltetést és a memóriahasználatot a nagy adathalmazokon végzett pontos MEDIAN számításokhoz képest.
DISTINCT nem támogatott. A karakter, dátum, időpont és dátum kifejezések nem támogatottak.
A APPROX_MEDIAN funkció elérhető Fabric Data Warehouse-ben, valamint az SQL analitikai végpont Fabric elemekkel. Ez a APPROX_MEDIAN funkció nem támogatja az SQL Server-ben, Azure SQL Database-ban, Azure SQL Managed Instance-ban vagy az SQL database-ben a Fabric-ben.
Felhasználási eset
Nagy léptékű irányítópultok, feltáró elemzés és csoportosított jelentések használata APPROX_MEDIAN , ahol egy közeli becslés elegendő, és a lekérdezési teljesítmény fontosabb, mint egy pontosan medián. Gyakori példák a közelítő medián rendelési érték, a szolgáltatási késleltetés és a telemetriai mérések.
Példák
A. Kiszámítsunk egy összesített közelítő mediánt
Ez a példa a mediánt nyolc érték között becsüli.
SELECT APPROX_MEDIAN(value) AS ApproxMedianValue
FROM (VALUES (1), (2), (3), (4), (5), (6), (7), (8)) AS t(value);
Az eredmény közel áll pontosan a középponthoz, 4.5de kissé eltérhet.
B. Számolj ki egy közelítő mediánt minden csoporthoz
Ez a példa minden értékesítési régió medián rendelési összegét becsüli.
WITH SalesOrders AS (
SELECT *
FROM (VALUES
('North', 120.00),
('North', 220.00),
('North', 320.00),
('South', 150.00),
('South', 250.00),
('South', 450.00)
) AS v(region, order_amount)
)
SELECT
region,
APPROX_MEDIAN(order_amount) AS ApproxMedianOrderAmount
FROM SalesOrders
GROUP BY region;
C. Figyelmen kívül hagyd a NULL értékeket
Ez a példa figyelmen kívül hagyja NULL az értékeket a medián becslésekor.
SELECT APPROX_MEDIAN(value) AS ApproxMedianValue
FROM (VALUES (1), (2), (NULL), (3), (4)) AS t(value);
Ha minden bemeneti érték , NULLa függvény visszaadja NULL.
D. Számolj ki egy partíciós ablakközelítő mediánt
Ez a példa minden szolgáltatás közelítő medián késleltetését minden kéréssorhoz hozzáadja.
WITH ServiceLatency AS (
SELECT *
FROM (VALUES
('Checkout', 'req-001', 180),
('Checkout', 'req-002', 220),
('Checkout', 'req-003', 260),
('Search', 'req-010', 90),
('Search', 'req-011', 110),
('Search', 'req-012', 130)
) AS v(service, request_id, latency_ms)
)
SELECT
service,
request_id,
latency_ms,
APPROX_MEDIAN(latency_ms) OVER (PARTITION BY service) AS ServiceApproxMedianLatency
FROM ServiceLatency;