← Všechny znalosti

PUBLISHED

Jak spočítat medián pro aktuální skupinu v SQL Serveru

Převod korelovaného výpočtu minima na medián pomocí PERCENTILE_CONT bez porušení scalar subquery kontraktu.

sql-serversqlanalytické-funkce

Problém

Existující korelované subquery vracelo minimum pro aktuální skupinu. Požadavek byl změnit metriku na medián.

Kontext

PERCENTILE_CONT(0.5) je v SQL Serveru analytická funkce s WITHIN GROUP a OVER; nechová se stejně jako jednoduchá agregace MIN.

Řešení

Zachovej původní filtry a korelaci, medián vypočti přes PERCENTILE_CONT nad partition aktuální skupiny a zajisti, aby scalar subquery nakonec vracelo právě jednu hodnotu.

Ověření

Výsledek ověř na malé známé sadě s lichým i sudým počtem hodnot a porovnej s ručním výpočtem mediánu.

Omezení

PERCENTILE_CONT může vrátit interpolovanou hodnotu, která nemusí být jedním ze skutečně uložených řádků.


Původ: Anonymizovaná vlastní technická zkušenost autora projektu

Aktualizováno: 2026-08-04

Související znalosti