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

2023-12-26

我在网上找到了一个 SELECT-example。 当我在脚本中尝试它时,我收到此错误消息:

Specifying DISTINCT when using aggregate functions isn't reasonable - ignored. at /usr/lib/perl5/site_perl/5.10.0/SQL/Parser.pm line 496.

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

my $dbh = DBI->connect( "DBI:CSV:", undef, 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, 'Oberhemd', 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' 'Mantel' 'Oberhemd' 'Hose' 4 rows

我以为应该是

'Oberhemd' 'Mantel' 'Hose' 3 rows

安装版本:

Perl : 5.010000 (x86_64-linux-thread-multi) OS : linux (2.6.31) DBI : 1.609 DBD::Sponge : 12.010002 DBD::SQLite : 1.25 DBD::Proxy : 0.2004 DBD::Gofer : 0.011565 DBD::File : 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、sort -u 以获得唯一(行的值),我会得到 36 个值,这正是我所期望的。

当然是代码中的错误。

-Kanwar

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

DBD::CSV 0.26 SQL::解析器 1.23 DBI 1.609

example:

使用聚合函数时指定 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SELECT DISTINCT 可以与 Perl 的 DBD::CSV 一起使用吗? 的相关文章

  • 子查询在多项选择时返回超过 1 个值的 SQL 错误

    我想要一个临时表 它将使用 select 语句插入值 但每次我运行查询时 总是出现错误 子查询返回超过 1 个值 当查询跟随 gt 或子查询用作表达式时 不允许这样做 该语句已终止 0 行受影响 这很奇怪 因为代码中似乎没有错误 但如果有的
  • 基于两个数据库表之间的数据比较创建oracle视图

    我有下表 我想创建视图以便descr O 以及对于常见的id isin两个表中的字段值 检查ratio字段并只取其中的行ratio字段值低 for descr O 如果 id isin 存在于一个表中但不存在于另一个表中 则获取这些行 双向
  • 使用 ActivePerl 时为什么必须指定带有备份扩展的 -i 开关?

    除非我使用备份扩展指定它们 否则我无法就地编辑在 ActivePerl 下运行的 Perl 单行代码 C gt perl i ape splice F 2 0 q inserted text qq F n file1 txt Can t d
  • 哪些字符可以用作正则表达式分隔符?

    哪些字符可以用作 Perl 正则表达式的分隔符 m re m re and m re 一切似乎都有效 但我想知道所有可能性 From perlop http perldoc perl org perlop html 通过 m 您可以使用任意
  • api网关CORS设置

    我正在尝试在部署脚本中使用 aws cli 从命令行设置 aws CORS 我使用以下 perl to shell 命令创建了 POST 资源 我正在尝试将集成响应设置为 就像启用核心一样 aws apigateway put method
  • 在选择下拉列表中选择特定选项时添加输入框

    我需要在选择选项时将输入添加到选择选项中 每当用户选择 其他 时 就会出现一个输入框供用户输入数据 HTML
  • 单台机器最快的 Perl IPC/消息队列是多少?

    我正在开发一个 主要 Perl 项目 并希望使用消息队列来相互隔离进程 我有这样的工作流程 输入 gt 接收器 gt 处理器 gt 输出 我需要每秒处理数百笔交易 所以速度是我最大的动力 对于这种类型的设置来说 最快的消息队列系统是什么 我
  • 使用 unix ksh shell 脚本或 perl 脚本监视文件夹中的新文件并触发 perl 脚本

    我已经在谷歌搜索和溢出了一段时间 但找不到任何可用的东西 我需要一个脚本来监视公共文件夹并在创建新文件时触发 然后将文件移动到私有位置 我有一个 samba 共享文件夹 exam ple 在 UNIX 上映射到X 在窗户上 在某些操作中 t
  • Dplyr select_ 和starts_with 对变量列表中的多个值进行选择

    我正在从不同位置的不同传感器收集数据 数据输出类似于 df lt data frame date c 2011 2012 2013 2014 2015 Sensor1 Temp c 15 18 15 14 19 Sensor1 Pressu
  • Perl 中的“@_”有什么作用?

    我浏览了一些我在 Perl 类中编写的代码 我注意到了这一点 my string my stringarray split string 我想知道两件事 变量位于括号中的第一行 这是声明多个变量时所做的事情 如果我删除它们 它仍然可以正常工
  • 在 SQL Server 中执行嵌套 case 语句逻辑的最佳方法

    我正在编写一个 SQL 查询 其中返回的一些列需要根据很多条件进行计算 我目前正在使用嵌套的 case 语句 但它变得混乱 有更好的 更有组织性和 或可读性 方法吗 我使用的是 Microsoft SQL Server 2005 一个简化的
  • 为什么Perl的SUPER调用不使用箭头方法?

    我注意到 当您调用超类的方法时 您需要执行以下操作 my self class gt SUPER new 为什么不是这样 my self class gt SUPER gt new 我怀疑是因为 class gt SUPER gt new
  • Perl 删除目录中的所有文件

    我怎样才能删除allPerl 中目录中的文件 不删除目录 我的主机只允许最多 250 000 个 文件 而我的 tmp 文件夹会在所有会话 cookie 运行的情况下快速填充 250 000 个 qouta 在这种情况下我无法删除 tmp
  • 如何在正则表达式中匹配“/*”?

    stuff d learning perl tmp txt open STUFF stuff or die Cannot open stuff for read while
  • 这可以一行完成吗?

    我像这样提取MAC地址 my tmp split domain 123 123 123 123 at 00 11 22 33 44 55 ether on eth0 my vip tmp 3 但不使用临时变量可以完成吗 是的 它可以 my
  • MySQL SELECT 输出同一行中每个 id 的下一个日期

    我查询的表结构如下 ID Date Before value After value 1 2014 04 25 Win Loss 1 2014 04 30 Loss Win 1 2014 08 18 Win Loss 1 2014 08 2
  • PHP 选择后立即删除

    我有一个 PHP 服务器脚本 它从 MySQL 数据库中选择一些数据 一旦我将 mysql query 和 mysql fetch assoc 的结果存储在我自己的局部变量中 我就想删除我刚刚选择的行 这种方法的问题在于 PHP 似乎对我的
  • Perl Tk 模块有哪些缺点?

    与在 Perl 中创建 GUI 的其他解决方案相比 Tk 模块有哪些缺点 我最近浏览了 Perl 的各种 gui 模块 这是我的总结 免责声明 最终我发现现有模块都不能满足我的需求 所以我开始编写自己的 gui 工具包 Tk 工作起来很不错
  • MySQL MIN/MAX 所有行

    我有桌子Races与行ID Name and TotalCP 我选择分钟 TotalCP FROM Races 但是我想选择具有最小值的整行 我如何在单个查询中做到这一点 从聚合值获取整行的一般形式是 SELECT FROM Races W
  • 使用 where 进行 select 语句时,HSQLDB 用户缺乏权限或未找到对象错误

    我的数据库使用 SQuirrel SQL 客户端版本 3 5 3 和 HSQLDB 我已经能够为其指定相应的驱动程序 内存中 并创建一个别名 我创建了一个表 CREATE TABLE ENTRY NAME VARCHAR 100 NOT N

随机推荐

  • 使用 resharper 从大型类创建接口

    我有一个非常大的类 有很多方法 是否可以使用 Resharper 从该类构建接口 Yes 我的快捷键是 Ctrl Shift R 来调出重构选项 对类名执行此操作允许您 提取接口 或者 您可以从菜单 gt ReSharper gt Refa
  • 在哪里放置对象映射(在 RestKIt 中)

    因为我不想劫持另一个线程 所以我提出了关于映射的问题 首先阅读 RestKit 中放置对象映射的最佳位置是哪里 https stackoverflow com questions 7190721 wheres the best place
  • 如何在启用 Markdown 的 Slack 附件行的开头显示大于号?

    我正在尝试匹配 Slack API 消息的模型 该消息在附件文本行开头的链接中具有大于 gt 字符 该模型还在附件文本中使用斜体和粗体 所以我有text in the mrkdown in大批 不幸的是 这会导致 Slack 解释为 gt
  • 访问 RFC 调用系统的堆栈内存

    当程序在 SAP ECC 中运行时 系统堆栈 存储所有全局变量 无论在该单个会话中调用什么模块 程序 当它调用支持 RFC 的功能模块 FM 时 会在被调用系统中创建一个新的系统堆栈 并且当被调用 FM 完成时 只能在 ECC 中检索被调用
  • InvalidCharacterError 仅在 IE 中出现

    我们有一个订单表单 它使用 ziplookup 功能 当在字段中输入邮政编码时 城市 县 州和邮政编码也会输入到同一字段中 tr td class formLabel Zip Code td td class formColon nbsp
  • SwiftUI 和 NavigationView 的动画错误可能是什么原因造成的?

    我一直在尝试一些 SwiftUI 布局 我想尝试的事情之一是创建一个简单的圆形进度环 在对代码进行了一段时间的研究之后 我设法让一切都按照我希望的方式工作 至少对于原型来说是这样 当我将此视图嵌入到 SwiftUI NavigationVi
  • 将 python 日期格式 (%Y) 转换为 java (yyyy)

    我有很多时间格式 格式如下 Y m d H M S 有没有快速的方法或库将它们转换为 YYYY MM DD HH MM SS 我当前的方法是使用字符串替换 但也许我会错过一些边缘情况 我可能的格式化程序是 d b Y y H M S p f
  • Node.JS deflate/gzip 响应文本

    我看到了所示的示例here http nodejs org api zlib html zlib examples response writeHead 200 content encoding deflate raw pipe zlib
  • 在可能保存模型时处理 ember-data 中的自定义服务器端错误

    保存模型时是否有正确的方法来处理自定义错误 举个例子 假设我有一个只有两个属性 名称 和 值 的模型 当我这样做时 var myModel this get store createRecord myModel name someName
  • IE9 中 的边框半径错误

    看见那个 div 元素正确渲染边框 边框半径 但任何 a or a div
  • 如何使用 JavaScript 获取滚动条位置?

    我正在尝试使用 JavaScript 检测浏览器滚动条的位置 以确定当前视图在页面中的位置 我的猜测是 我必须检测拇指在轨道上的位置 然后检测拇指的高度占轨道总高度的百分比 我是否过于复杂化了 或者 JavaScript 是否提供了比这更简
  • 当在 contenteditable 按钮中输入空格时,Chrome 会触发 onClick

    我有一个按钮contenteditable true 我可以很好地编辑文本 但无法在 Chrome 中输入空格 当我按下空格键时 Chrome 会在按钮上触发 onClick 事件 然而 Safari 会按照您的预期插入一个空格 使用此代码
  • C++ 的类似 Hibernate 的层

    在 C 中使用 DB 确实是一团糟 当我转向 Java 并能够使用统一的系统将整个层抽象出来 又名 Hibernate 时 这真是令人耳目一新 有几个用于 DB 的 C 抽象层 但它们通常是特定于供应商的 并且只有一个薄层包装了真正的 C
  • 我想单击列表视图中的任意位置(空白区域)

    作为一名新的 Android 程序员 我必须运行我的待办事项应用程序 对于圣诞节购物来说这是可以接受的 但我真的很想让整个列表项行可单击 现在我必须点击文本 物品越短越难击中 我的主要活动扩展了 ListActivity 我将 Resour
  • rspec 测试中 Rails 应用程序的端口号

    我想使用 rspec 结合 Faraday 和 Faraday middleware 来测试 Rails 应用程序的 json 响应 要使用 Faraday 需要应用程序 URL 在测试中我想使用本地主机 端口号 问题是 如何在 rspec
  • 如何在编辑 XML 文件时运行我的项目?

    当我编辑 XML 文件并尝试运行 Android 项目 通过单击工具栏中的 播放 按钮或 command shift F11 时 没有任何反应 我必须切换到我也在编辑的 java 文件才能运行该项目 我怎样才能解决这个问题 您无法运行 xm
  • (PyQt) QTreeView - 想要展开/折叠所有子级和孙级

    我希望能够展开或折叠 QTreeView 中特定分支的所有子级 我正在使用 PyQt4 我知道 QTreeView 有一个绑定到 的展开所有子项功能 但我需要两件事 它需要绑定到不同的组合键 shift space 我还需要能够折叠所有子项
  • React Native - 无法执行 JS 调用:__fbBatchedBridge 未定义

    我一直在关注这个教程https www raywenderlich com 126063 react native tutorial https www raywenderlich com 126063 react native tutor
  • 如何使用Python将主机名添加到known_hosts?

    我正在使用此代码将服务器添加到known hosts subprocess Popen sshpass p password ssh o StrictHostKeyChecking no add key stdout subprocess
  • SELECT DISTINCT 可以与 Perl 的 DBD::CSV 一起使用吗?

    我在网上找到了一个 SELECT example 当我在脚本中尝试它时 我收到此错误消息 Specifying DISTINCT when using aggregate functions isn t reasonable ignored