Ciao ragazzi, voglio calcolare la mediana di 5 valori per volta. Ho pensato di fare così:
però sembra che il risultato che continuo ad avere è il calcolo su tutte le righe della tabella. Quindi non ho risolto il mio problemacodice:select id, avg(val) from (select *, @num := if (@a=a, @num+1,1) as riga, @a:=a from (select x.id, x.a, x.val from tabella x, tabella y group by x.id, x.val having sum(sign(1-sign(if(y.val-x.val=0 and x.id!y.id, sign(x.id-y.id),y.val-x.val)))) IN ROUND((count(*))/2), ROUND((count(*)+1)/2)) )t )t2 group by a, ceil (riga/5)![]()

Rispondi quotando