Ciao ragazzi, voglio calcolare la mediana di 5 valori per volta. Ho pensato di fare così:

codice:
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)
però sembra che il risultato che continuo ad avere è il calcolo su tutte le righe della tabella. Quindi non ho risolto il mio problema