BEGIN { for (foo=0; foo<2000; foo++) minimum[foo] = 999999; for (foo=0; foo<2000; foo++) maximum[foo] = 0; } $2<1000 { count[$1] ++; value[$1] += $2; if ($2 < minimum[$1]) minimum[$1] = $2; if ($2 > maximum[$1]) maximum[$1] = $2; } END { # and when count[nnn] is zero ? for (foo=0; foo<2000; foo++) { val = value[foo] / count[foo]; print foo, val, minimum[foo], maximum[foo]; } }