Code:
alias pfind {
  var %tbl = pinfo, %tsize = $hget(%tbl,0).item, %win = @pinfo_srt, %win2 = @pinf_srtd

  ; add to window
  /window -h %win
  /window -h %win2
  var %p = 1
  while (%p <= %tsize) {
    /aline %win $+($hget(%tbl,%p).item,$chr(9),$hget(%tbl,$hget(%tbl,%p).item))
    /inc %p
  }

  ; sort
  if ($1 == size) /filter -tuww 6 9 %win %win2
  else if ($1 == score) /filter -tuww 7 9 %win %win2

  ; Output
  var %lines = $line(%win2,0), %l = %lines - 5, %c = 1
  if (%l < 0) var %l = 0
  while (%lines > %l) {
    /echo -s $+(%c,.) $line(%win2,%lines)
    /inc %c
    /dec %lines
  }

  /window -c %win
  /window -c %win2
}


Nevermind wink /filter was just what i needed. Should work fine, and give you the results you want. You may even decide to make it call an alias, or reroute the information. As it is, change the /echo in the ; output section to do what you'd like. Also, change the %tbl variable to the name of your own table.

[edit]If you want to sort by anything else (name maybe, or even descending) fool with the filters. These will give you descending sorts for either option:

Code:
  ; sort
  if ($1 == size) /filter -tuww 6 9 %win %win2
  else if ($1 == score) /filter -tuww 7 9 %win %win2
  else if ($1 == sizedesc) /filter -etuww 6 9 %win %win2
  else if ($1 == scoresesc) /filter -etuww 7 9 %win %win2


use /pfind <size|sizedesc|score|scoredesc>