SELECT DISTINCT是否可以与Perl的DBD :: CSV一起使用?

我在网上找到了一个SELECT示例.
当我在我的脚本中尝试它时,我收到此错误消息:

使用聚合函数时指定disTINCT是不合理的 – 忽略.在/usr/lib/perl5/site_perl/5.10.0/sql/Parser.pm第496行.

#!/usr/bin/perl
use warnings;
use strict;
use DBI;

my $dbh = DBI->connect( "DBI:CSV:",undef,{ raiseerror => 1,AutoCommit => 1 } );
my $table = 'artikel';

my $array_ref = [   [ 'a_nr','a_name','a_preis' ],[ 12,'Oberhemd',39.80,],[ 22,'Mantel',360.00,[ 11,44.20,[ 13,'Hose',119.50,];
$dbh->do( "CREATE TEMP TABLE $table AS IMPORT(?)",{},$array_ref );

my $sth = $dbh->prepare( "SELECT disTINCT a_name FROM $table" );
$sth->execute();
$sth->dump_results();
$dbh->disconnect();

SELECT disTINCT不能与DBD :: CSV一起使用或者我的脚本有问题吗?

编辑:
输出

‘Oberhemd’
“曼特尔”
‘Oberhemd’
‘软管’
4行

我认为应该是

‘Oberhemd’
“曼特尔”
‘软管’
3排

已安装的版本:

Perl:5.010000(x86_64-linux-thread-multi)
  操作系统:linux(2.6.31)
  DBI:1.609
  DBD ::海绵:12.010002
  DBD :: sqlite:1.25
  DBD ::代理:0.2004
  DBD :: Gofer:0.011565
  DBD ::文件:0.37
  DBD :: ExampleP:12.010007
  DBD :: DBM:0.03
  DBD :: CSV:0.26

解决方法

嗨这是一个容易重现的错误. SELECT data_display_mask FROM test.csv返回200多行. SELECT disTINCT data_display_mask FROM test.csv返回警告消息和相同的200行.

如果我做一个awk,排序-u为唯一(行的值)我得到36个值,这是我所期望的.

当然是代码中的错误.

-Kanwar

perl -V
我的perl5(修订版5版本10颠覆0)配置摘要
  平台:
    osname = linux,osvers = 2.2.24-6.2.3,archname = i686-linux-thread-multi

DBD :: CSV 0.26
sql :: Parser 1.23
DBI 1.609

例:

使用聚合函数时指定disTINCT是不合理的 – 忽略.在/opt/perl2exe/perl5/lib/site_perl/5.10.0/sql/Parser.pm第496行.
87060
87060
87060
87060

使用的sql是SELECT disTINCT entry_id FROM test.csv

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...