Skip to content



med x    med[x]

Where x is a numeric list returns its median.

q)med 10 34 23 123 5 56
q)select med price by sym from trade where date=2001.10.10,sym in`AAPL`LEH

med is an aggregate function, equivalent to

{avg x (iasc x)@floor .5*-1 0+count x,:()}

Domain and range

domain: b g x h i j e f c s p m d z n u v t
range:  f . f f f f f f f . f f f f f f f f

Implicit iteration

med applies to dictionaries and tables.

q)k:`k xkey update k:`abc`def`ghi from t:flip d:`a`b!(10 -21 3;4 5 -6)

q)med d
7 -8 -1.5

q)med t
a| 3
b| -6

q)med k
a| 3
b| -6

Partitions and segments

med signals a part error when running a median over partitions, or segments. (Since V3.5 2017.01.18; from V3.0 it signalled a rank error.) This is deliberate, as previously med was returning median of medians for such cases. This should now be explicitly coded as a cascading select.

select med price by sym from 
  select price, sym from trade 
      date within 2001.10.10 2001.10.11, 
      sym in `AAPL`LEH


Back to top