当前位置: 首页 > 面试题库 >

Informix中的group_concat

扶高歌
2023-03-14
问题内容

在Informix的SQL中寻找可模拟MySQLgroup_concat功能的查询。

MySQL的group_concat作用是创建该组中所有成员的枚举。

因此,数据如下:

orderid:itemName:price
      1:Paper   :10
      1:Pen     :5
      2:Sugar   :15

和以下查询:

select group_concat(itemName), sum(price)
from order_details
group by orderid

会产生:

items    :price
Paper,Pen:15
Sugar    :15

在Informix中实现这一目标的最有效方法是什么?我们一定要使用存储过程吗?


问题答案:

为此,您必须定义一个用户定义的聚合。这包括四个部分-四个功能(在IDS
12.10信息中心中
搜索CREATE
AGGREGATE
):

  1. 初始化器(INIT)
  2. 迭代器(ITER)
  3. 合并(合并)
  4. 终结者(FINAL)

这是首都的官方术语,相当直观。考虑计算平均值。

  1. 初始化程序:设置总和= 0; N = 0
  2. 迭代器:设置总和+ = x; N ++
  3. 组合器:设置总和= sum1 + sum2; 设置N = N1 + N2
  4. 终结器:结果=总和/ N-N = 0(零分频)检查

合并器用于合并并行执行的中间结果。每个并行执行都从迭代器开始,并生成中间结果。并行执行完成后,将单独的值集与组合器组合在一起。

您可以使用存储过程或C或Java UDR在IDS中编写类似的代码。



 类似资料:
  • 这是 Informix 数据库面向开发人员提供的免费版本(非开源)。 Informix可以提供面向屏幕的数据输入询问及面向设计的询问语言报告生成器。数据定义包括定义关系、撤销关系、定义索引和重新定义索引等。 Informix不仅可以建立数据库,还可以方便地重构数据库,系统的保护措施十分健全,不仅能使数据得到保护而不被权限外的用户存取,且能重新建立丢失 了的文件及恢复被破坏了的数据。其文件的大小不受

  • 但是,生成的changelog没有变更集。这就是changelog的样子- 这就是我的调试日志的样子-

  • Ruby/Informix 是 Informix 数据库的 Ruby 语言驱动程序。 示例代码: db = Informix.connect('stores')cur = db.cursor('select * from stock')cur.openrecords = cur.fetch_allcur.drop # or close, if you want to reopen it later

  • 这是 Informix 数据库的 纯 Java 的 JDBC 驱动程序(Type 4) 驱动类名:com.informix.jdbc.IfxDriver 链接URL:jdbc:informix-sqli://IBM-HENRY:1526/sample:informixserver=ol_henry;user=henry;password=happyday

  • 问题内容: 我使用Informix遇到了一个奇怪的问题(具体来说,我使用的是IBM.Data.Informix命名空间,即4.10 Client SDK)。我正在使用ODBC连接到IBM Informix数据库,并且遇到内存泄漏问题。该文档相当稀疏,并且我只能使用当前安装的驱动程序/ SDK。这是我用于数据库上下文的代码: } 我已尝试处置并关闭所有可以的连接,但这似乎无济于事。我是否缺少某些东西

  • 问题内容: 我已经使用Seam 2.2.1和MySQL编写了一个正在运行的应用程序。我现在尝试将应用程序连接到 Informix, 并且当我从 hibernate ()执行查询时,出现以下异常: org.hibernate.exception.genericjdbcexception无法执行查询 当我执行查询时,执行成功。 生成的sql是 选择前2个user0_.USER_ID作为USER1_12