sql >> Databáze >  >> RDS >> Mysql

Výpočet mediánu pomocí Mysql

Navrhuji rychlejší způsob.

Získejte počet řádků:

SELECT CEIL(COUNT(*)/2) FROM data;

Pak vezměte střední hodnotu v seřazeném poddotazu:

SELECT max(val) FROM (SELECT val FROM data ORDER BY val limit @middlevalue) x;

Testoval jsem to s datovou sadou 5x10e6 náhodných čísel a najde medián za méně než 10 sekund.

Tím se najde libovolný percentil nahrazením COUNT(*)/2 s COUNT(*)*n kde n je percentil (0,5 pro medián, 0,75 pro 75. percentil atd.).



  1. ORA-28001:Platnost hesla vypršela

  2. Je v Oracle možné VLOŽIT nebo AKTUALIZOVAT záznam prostřednictvím pohledu?

  3. Funkce ACOS() v Oracle

  4. Jak získat první den každého odpovídajícího měsíce v mysql?