你问了两个问题:
如何生成每个数组的熵?
如何在单独的MySQL表中输出结果?
首先是您告诉我们并帮助您实施。
第二个问题如下。
my $sth_select = $dbh->prepare('
SELECT Topic,
Value
FROM Table1
ORDER BY Topic
');
my $sth_insert = $dbh->prepare('
INSERT INTO Table2
Topic,
Entropy
) VALUES (
?, ?
)
');
my $last_topic;
my @values;
$sth_select->execute();
while (my $row = $sth_select->fetch()) {
my ($topic, $value) = @$row;
if (@values && $topic ne $last_topic) {
my $entropy = calculate_entropy(@values);
$sth_insert->execute($last_topic, $entropy);
@values = ();
}
$last_topic = $topic;
push @values, $value;
}
if (@values) {
my $entropy = calculate_entropy(@values);
$sth_insert->execute($last_topic, $entropy);
@values = ();
}
注意: H3>
某些数据库不能为给定的数据库句柄提供两个打开的语句句柄。如果MySQL就是这样,只需创建两个数据库句柄。
锁定和交易留给读者作为练习。 (或者有人可以编辑它。)