加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-16 06:24:03 所属栏目:大数据 来源:网络整理
导读:我在网上找到了一个SELECT示例. 当我在我的脚本中尝试它时,我收到此错误消息: 使用聚合函数时指定DISTINCT是不合理的 – 忽略.在/usr/lib/perl5/site_perl/5.10.0/SQL/Parser.pm第496行. #!/usr/bin/perluse warnings;use strict;use DBI;my $dbh = DBI-con
我在网上找到了一个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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读