我在网上找到了一个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