SELECT group, somedata FROM table ORDER BY group, somedata #### my $lastgroup = undef; while ( my $row = $sth->fetchrow_arrayref() ) { if ( $lastgroup ne $row->[0] ) { print( $row->[0] . "\n" ); $lastgroup = $row->[0]; } print( " " . $row->[1] . "\n" ); } #### my $lastgroup = undef; while ( my $row = $sth->fetchrow_arrayref() ) { if ( ( !defined( $lastgroup ) ) || ( $lastgroup ne $row->[0] ) ) { print( $row->[0] . "\n" ); $lastgroup = $row->[0]; } print( " " . $row->[1] . "\n" ); }