Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Obliczanie mediany za pomocą Mysql

Proponuję szybszy sposób.

Uzyskaj liczbę wierszy:

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

Następnie weź środkową wartość w posortowanym podzapytaniu:

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

Przetestowałem to z zestawem danych losowych liczb 5x10e6 i znajdź medianę w mniej niż 10 sekund.

Spowoduje to znalezienie dowolnego percentyla poprzez zastąpienie COUNT(*)/2 z COUNT(*)*n gdzie n to percentyl (0,5 dla mediany, 0,75 dla 75 percentyla itd.).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Brak dostępnego pakietu msyql-server

  2. Odejmowanie jednego wiersza danych od drugiego w SQL

  3. Błąd MySQL 1093 - Nie można określić tabeli docelowej do aktualizacji w klauzuli FROM

  4. MySql :Wybierz instrukcję za pomocą operatora IN

  5. Pętla skryptu Bash przez MySQL