Mysql
 sql >> Database >  >> RDS >> Mysql

Assegnazione efficiente di percentile/rank in MySQL

Non posso testarlo, ma potresti provare qualcosa come:

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

AGGIORNAMENTO:

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

Funziona in Oracle (l'unico database che ho a disposizione). Ricordo di aver ricevuto quell'errore in MySQL. È molto fastidioso.