我在mysql数据库中有一个表,其中的字段
“名称”,“标题”,“cd_id”,“曲目”
这些条目如下所示:
Schubert | Symphonie Nr 7 | 27 | 2
Brahms | Symphonie Nr 1 | 11 | 4
Brahms | Symphonie Nr 2 | 27 | 4
Shostakovich | Jazz Suite Nr 1 | 19 | 3
为了获得每个cd的曲目(cd_id),我写了这个脚本:
# !/usr/bin/env perl
use warnings; use strict;
use DBI;
my $dbh = DBI->connect(
"DBI:mysql:database=my_db;",
'user', 'passwd', { RaiseError => 1 } );
my $select_query = "SELECT cd_id, tracks FROM my_table";
my $sth = $dbh->prepare( $select_query );
$sth->execute;
my %hash;
while ( my $row = $sth->fetchrow_hashref ) {
$hash{"$row->{cd_id}"} += $row->{tracks};
}
print "$_ : $hash{$_}\n" for sort { $a <=> $b } keys %hash;
是否可以使用适当的选择查询直接获得这些结果?
2条答案
按热度按时间5vf7fwbs1#
edit:有关更多信息以及可以使用GROUP BY执行的其他操作,请参见此处:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
kqhtkvqz2#
使用聚合函数