sql >> Databasteknik >  >> RDS >> Mysql

Effektiv tilldelning av percentil/rank i MYSQL

Jag kan inte testa detta, men du kan prova något i stil med:

update table t
set mi_percentile = (
    select count(*)
    from table t1
    where M1 < t.M1 / (
        select count(*)
        from table));

UPPDATERING:

update test t
set m1_pc = (
    (select count(*) from test t1 where t1.M1 < t.M1) * 100 /
    ( select count(*) from test));

Detta fungerar i Oracle (den enda databasen jag har tillgänglig). Jag minns att jag fick det felet i MySQL. Det är väldigt irriterande.



  1. SQL SELECT hastighet int vs varchar

  2. Hur man konverterar en MySQL-databas till UTF-8-kodning

  3. Mysql startar inte i en docker-container på MacOS efter docker-uppdatering

  4. mysql och index med mer än en kolumn