use Modern::Perl; use DBI; my $dbh = DBI->connect( "dbi:CSV:", "", "", { f_dir => './DB', csv_sep_char => "\t", } ) or die "Cannot connect: $DBI::errstr"; my $sql = 'SELECT id, count(*) AS number, sum(tumor) AS tumorscore, sum(normal) AS normalscore, sum(tumor - normal) AS difference, avg(tumor - normal) AS averagedifference FROM methyl WHERE (tumor - normal) <=20 or (tumor - normal) >=20 GROUP BY id ORDER BY id'; my $sth = $dbh->prepare($sql); $sth->execute; while ( my $row = $sth->fetchrow_hashref ) { say "id: $row->{'id'}, Count: $row->{'number'}, Score tumor: $row->{'tumorscore'}, Score normal: $row->{'normalscore'}, Difference: $row->{'difference'}, Average Difference: $row->{'averagedifference'}"; }