集算器程序之序列与序表(1)

序列、序表、排列是集算器中最常用的数据类型,本文将阐明它们之间的关系和各自的特性。

1、序列是有序的泛型集合

1.1集合性

序列由多个数据构成, 这些数据被称为序列的成员, 成员可以是任意数据类型,比如字符串、数字、浮点、日期,序列成员还可以为空。序列具有集合的一般特性,可以进行集合运算。如:

上面网格中,A1,A2和A3中的值如下:

它们都是序列,其中,A1中为空序列;A2序列中的成员都是整数,也称作数列;A3的值是成员为字符串的序列。

A4中用表达式计算序列,和A3中的常数序列不同,表达式中的字符串需要用双引号扩出。A5计算A3和A4中两个序列的交集,结果也是序列。A4和A5中的结果如下:

1.2 泛型性

序列是泛型集合,成员的数据类型可以不同,成员本身也可以是序列。如:

网格中,B1中序列成员分别为整数和日期;B2中序列成员含有序列,与B3中的表达式等价。B1,B2和B3中的结果如下:

其中,序列成员用蓝色表示,可以双击查看。

1.3 有序性

一般的集合是无序的,即:成员一样但顺序不同的两个集合是相等的。序列具有有序性,成员一样但顺序不同的两个集合不相等,比如:

在A2中可以用表达式=A1==B1判断两个序列是否相等,其结果为false:

有序性是业务数据的普遍特性,比如:Mike排在Tom前面,可以表示前者的学习成绩更好;将销售额按月份排列,可以清晰表达销售额的变化规律。使用序列可以更方便地进行有序计算,比如:

A2中取出序列的第2个成员,也可以用=A1.m(2)来表示。A3中取出序列中倒数第1个成员。A4在序列中获得成员Tom的序号。A5将序列反转。A2,A3,A4和A5中的结果如下:

此外还有插入、删除、修改、复制、比较、聚合、子序列、排序、排名、集合运算、字符串和序列互转等。

成员都是整数的序列被称为数列,数列具有更细化的访问方法,比如:

A1中生成的序列如下:

如果是从1生成序列,如=to(1,5)可以简写为=to(5)。

时间: 2024-11-10 15:54:54

集算器程序之序列与序表(1)的相关文章

集算器程序之序列与序表(2)

2.序表是有结构的序列 集算器继承了关系数据库中的数据表概念,称为序表.与关系数据库的概念一致,每个序表也有其自身的数据结构,由若干字段构成.序表的成员被称为记录. 2.1有结构的二维数据对象 序列的成员可以是任意数据类型,比如普通类型.其他序列或者记录.而序表的成员一定是记录,且每条记录的结构相同.比如,下面的数据对象就是序表: 因为是有结构的二维数据对象,所以序表通常生成自SQL.文本文件.二进制文件.Excel文件,也可以由空白序表创建而来.下面的A1,B1,C1就是序表: A1从文本文件

集算器对数据库的操作

集算器可以从数据库中读取数据,可以将数据写入数据库,也可以调用数据库的存储过程.基于这三种基本操作,集算器可以应用在多种数据库相关的场景任务: 1.  数据分析和展现任务,其过程是: 通过sql或者存储过程,从数据库读入数据. 从其他数据源(其他数据库.文件.hdfs.nosql数据库.http数据源.json数据源等)读入数据. 将异构数据统一进行处理 提供给应用程序或者报表展现. 2.  类似ETL的批处理任务. 过程和分析展现任务类似,所不同的是最后一步数据不是用来展现,而是写入其他数据库

集算器协助java处理多样性数据源之JSON

Java的json开源包一般只能解析json数据,没有运算功能.程序员自己写通用的程序来实现分组.排序.过滤.连接这些计算,相当麻烦.例如:用java写json文件条件过滤程序时,当条件表达式发生变化时就需要改写代码.如果要实现象SQL那样灵活的条件过滤,则需要自己实现动态表达式解析和求值,编程工作量非常大. 集算器是支持动态表达式的,可以嵌入到Java中写出通用的json计算程序.下面我们通过例子来看一下具体作法.待处理字符串是json格式的员工信息,包含EID.NAME.SURNAME.GE

集算器JDBC的集成与使用方法

集算器JDBC 类似一个不完整的数据库JDBC驱动,它不带物理表,可将集算器视为只有存储过程的数据库(较强的计算能力,较弱的存储机制).与使用数据库JDBC非常类似,可以像调用存储过程一样调用集算器程序.不同的是,集算器JDBC是个完全嵌入式计算引擎,所有运算都在这个嵌入包中完成,而不象数据库那样还有一个独立的服务器来实施计算. 1.加载驱动jar 集算器JDBC所需jar包括:dm.jar.poi-3.7-20101029.jar.log4j_128.jar.icu4j_3_4_5.jar.d

集算器访问数据库的配置

集算器支持包括数据库在内的多种异构数据源.这里,我们通过例子来看一下集算器访问数据库的方法. 集算器可以连接数据库的jdbc驱动,也可以通过jdbc-odbc桥连接数据库.由于版权的原因,使用集算器的程序员需要自行准备数据库的jdbc或者odbc驱动.Jdbc驱动jar包准备好之后,需要放入集算器IDE安装目录的/common/jdbc中,例如:C:\Program Files (x86)\MicroInsight\common\jdbc目录中. 集算器集成开发环境的ODBC配置界面如下: 集算

集算器管理数据库事务的代码示例

集算器可以向数据库写入数据,支持数据库事务管理.这里通过例子来看一下控制事务提交和回滚等等的编程方法. 1.自动提交事务 集算器可以方便的实现增删改,最简单的写法如下: 上图中的A2到A4分别实现了插入.修改和删除.每条sql执行之后自动提交.需要说明的是: 1.3条语句提交了3次,对数据库操作比较频繁. 2.三条sql没有事务关系,后续的sql如果执行失败,并不影响前面的sql. 下面介绍结合序表批量提交事务,以及多条sql组成一个事务的编程例子.     2.批量提交事务 从students

集算器协助Java处理结构化文本之条件过滤

直接用Java实现文本文件中数据按条件过滤会有如下的麻烦: 1.文件不是数据库,不能用SQL访问.当过滤条件变化时需要改写代码.如果要实现象SQL那样灵活的条件过滤,则需要自己实现动态表达式解析和求值,编程工作量非常大. 2.文件太大时不能一次性装入内存处理,而采用逐步读入方式在考虑到性能时又会涉及到文件缓冲区管理.拆行计算等复杂编程. 使用集算器来辅助Java编程,这些问题都不需要自己写代码解决.下面我们通过例子来看一下具体作法. 文本文件employee.txt中保存了员工数据.我们要读取员

集算器与BIRT的集成过程

集算器提供了标准JDBC与报表工具集成,可以方便地与BIRT集成web端部署过程.下面就开发环境和WEB应用环境分别说明集成过程. 1. 开发环境下集成 1.1.创建配置文件 创建集算器JDBC必须的两个配置文件config.xml和dfxConfig.xml. 1.1.1. config.xml <?xml version="1.0"encoding="UTF-8"?> <Config Version="1"> <

集算器如何优化SQL计算(3)序运算

跨行引用 早期SQL不直接支持跨行引用,要生成序号后再JOIN,极其繁琐困难.引入窗口函数后的SQL能够较方便地引用其它行数据,但写法仍不简洁,有多个跨行引用项时代码会很长.而且如前所述,窗口函数在其它运算结果集基础上再实施,对窗口函数计算值的再引用就要写成子查询的形式,仍然繁琐. MySQL不支持窗口函数,但支持在SQL中使用变量,可以引用到前面的行,但无法引用到后面的行. 集算器提供了方便自然的跨行引用语法. 各产品月销售表结构为:产品.月份.销量:现要找出销量比上月多10%的记录. A 1