set @artist = '';
set @num = 1;
select * from (
select c.name,
c.artist,
@num := if(@artist = c.artist, @num + 1, 1) as row_number,
@artist := s.artist as dummy
from cds as c
) as results
where results.row_number <= 5;
####
my $rs = $schema->resultset('cds');
$rs = $rs->search({ genre => 'rock' });
####
$rs = $rs->limit_per_artist( 5 );