Hello,

Is it possible to write the median as an aggregate function using pure
tcl.

I did the following:

package require sqlite
sqlite sql d:/data/yaspo2004bt.sqlite
sql function median Median
set l [list]
proc Median {value} {
  global l
  lappend l $value
  # not absolute exact but just a draft
  return  [lindex [lsort -integer $l] [expr round([llength $l] / 2)]]
}
sql eval "select median(Size) from tensembl" val {set key [array names val median*] ; 
puts $val($key)}
result:

448
448
448
448
412
412
378
387
378
387
378
387
387
.
.
.
450

450 is the right result. However I get it at the very end.

And this is slow because it computes foreach row the median, I would
like only to compute it ones. For the last element! Becuase it is a
aggregate.

Any hint ?

regards,
Detlef

-- 
Dr. Detlef Groth
Max-Planck-Institut
fuer Molekulare Genetik
Ihnestr. 63/73
D-14195 Berlin
Tel.: + 49 30 - 8413 1235

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to