• 博客(1043)
  • 收藏
  • 关注

原创 给 BIRT 的 SQL 数据集传多值参数

但预览结果看不到数据,原因在于JDBC因为“预防SQL注入”的安全问题,禁止了这种多值参数的传值方式。arg1相当于第一个问号,然后看结果,能查出数据来了。

2023-02-03 10:12:00 540 1

原创 SQL 多字段条件查询

SPL语言从理论模型上做了大量的这类创新,能极大的提高描述计算的能力,可以想象掌握了 SPL 语言的你,一个人维护的。=A2.select(pos(~.array().concat(","),"北京 ")!(可以理解为 JAVA 里的数组,只是这个数组比较广义,元素可以是任意数据类型);还可以依次类推,~[-1] 是前一条记录,~[3] 是当前记录后面的第三条记录;=A2.select((~.销售额 -~[1]. 销售额 )>100000)pos(~.array().concat(","),"北京 ")

2023-02-02 09:41:37 957

原创 SQL 分组条件深入剖析

才导致自然而然的解题思路,能说的出,想得明白,但就是写不出相应的计算机语言。这一系列设计上的缺陷,造成了 SQL 的编写、维护、性能调优都成倍的增加工作量。集算器的 SPL 语言从根源上弃用了 SQL 背后的关系代数理论,发明新的离散数据集理论解决程序员描述计算的困难。追根溯源,上面 SQL 反映出来的问题,它缺少单纯的分组动作,不能显式的表达每个小分组,进而对每个小分组的更细致操作就无法直观表达。1、 按设备分组,找到每个设备下Ready的个数c1;2、 按设备分组,找到每个设备下所有状态的个数c2;

2023-01-19 10:37:14 2301

原创 多步骤复杂 SQL 优化实例

稍微复杂点的查询需求,写SQL就会是个烧脑的过程,除了证明我们人脑很聪明,逻辑思维能力强之外,剩余的就全是缺点,每个人经常用不同于其他人思路的方式绕行到同一个结果上,个性化这么强的编程方式,导致编写SQL、阅读SQL、调试SQL都很困难,维护成本也大大增高。在程序员编程描述计算这件事上,集算器 SPL 语言通过创新的数学理论模型《离散数据集》,大大改善《关系代数》(SQL背后的数学模型)在描述计算时的困难。简单的说是对有序计算更彻底的集合运算提倡分步等多方面创新,达到。

2023-01-18 11:51:41 771

原创 集算器读写 json

在 json 文件中有上述内容,欲将其中的 results 取出并输出成新的 json 文件。A2:将 A1 的 results 字段导出成 json 字符串。A1: 读取 json 文件成字符串,导入为序表。A3:输出 json 串到文件中。

2023-01-17 09:38:56 195

原创 解析 json,整理分散数据入库

根据 B5.SERVICES 记录里的字段数量循环,每个字段的名字可以在 C7 获得,每个字段的值可在 C8 取到。到此我们可以获得开篇所述“GROUPNAME”值、”SERVICES”中的键编号和“SERVICES”的值。“GROUPNAME”值、”SERVICES”中的键编号对应了数据库表 _groups 的 Groupname 和 ID。“LIST”中包含多个子孙记录,主要目标是”GROUPNAME”、”SERVICES”。“SERVICES”每个值对应数据库表 Services 中的一条记录。

2023-01-16 11:04:36 741

原创 用集算器比较字符串相似性

1、有 1001 个数字串(每个数字串长度不等,都是 0~9 之内),每一个数字串都和另外 1000 个中找出相同数最多和不同数最多的数字串(等于 1001 个数字数字串都要找一次)如果只有第 1 行数字串含有 1,而第 1001 行数字串没有,算是不同数有 1 个;D7:计算 A4 与 diff 的差为 same 的值,循环并总是存下最大值,循环 2 结束。B5:循环 2,遇到成员 1 时候跳过,取成员 2 与成员 1 比较数字字符。B4:循环 1 的变量,初始为 0,记录比较的结果不同数与相同数。

2023-01-13 09:18:54 465

原创 行转列,动态列枚举分组

Mongodb 不直接支持行转列,枚举分组做起来也很麻烦,要把数据读出来再用 Java、Php 等编程语言来实现;以下例子不使用 MongoDB 展现,如果使用 MongoDB 需要用 SPL 的 mongo_open()函数连接数据库,用 mongo_shell() 函数查询原始数据结构。B8、C8:根据 subs 循环,将 A4 中单个学校各科的学生成绩统计出来并按顺序拼接成序列。A5、B5、A6:生成结果表,结构是 school、sub1_5、sub1_4…sub1_1、sub2_5、sub2_4…

2023-01-12 10:02:01 382

原创 MongoDB 导出数据成 csv

将 MongoDB 中的多层数据导出为结构化二维数据,实现这种算法要考虑大数据的处理,结构化数据计算,用 python 实现存在一定难度。

2023-01-11 10:12:30 381

原创 动态 json 转化序表

A1:将 json 文件读成文本,导入成序表。可以看出 A1 此时相当于按照 custName 分组的目标结果表。A2:用对 A1 用 news 函数解析出 custCars 序表,合并到 A1。

2023-01-10 10:01:23 755 1

原创 mongodb 中做 join 的方法

用 Mongodb 是不支持 join 查询的, 要多次查询很不方便。可以考虑配合 mongodb 使用的本身有计算能力的工具,比如使用 SPL。通过 employee 文档和 seller 文档查询 employee.state 为 California 的 sales orders。A4:选出满足条件的结果,订单 1、3 都属于来自 California 的雇员 1。

2023-01-09 09:44:21 876

原创 查找满足条件的子记录并合并

问题是,要将 mongodb 中的一系列字符串记录按照逗号分割的首个数字值筛选。A4:将每个字符串成员转成序列,取第一个子成员,根据其选择数据。A3:找到需要计算的数据序列。

2023-01-06 10:34:14 202

原创 筛选用户权限子集记录

A4:对照 A2 每条记录的 au 是不是 A3 的子集,如果是就查出来。

2023-01-05 10:49:15 391

原创 mongodb 分组子文档合并

A4:每组数据的 acls 列内数据合并成一个序列,作为 readUser 保存。A3:数据根据 name 分组。

2023-01-04 10:34:46 566

原创 对序表记录固定排序

A2:使用 align 函数把 A1 按照排序依据进行排序 / 对齐。[300,200,100,400] 可以是外部参数(假设命名为 list),A2 的代码则可以改为 A1.align@s(list,PRODUCT_ID)集算器提供 JDBC 接口,可以像数据库一样使用,

2023-01-03 11:19:50 488

原创 组内每隔 5 行加一个分隔线

BIRT 可通过 JDBC 访问集算器,可以像数据库一样使用,参考。:在组内每隔 5 行设一个标签。

2022-12-30 18:06:48 848

原创 文本中按规则分组区段随机抽样

A1:读入文件,第一行作为列名,并设置SessionDate、Start和End的数据类型,最后将SessionDate和Start拼成完整日期DateStart。A2:将A1按Easting,Northing分组,循环每一组。循环体即缩进的B2-D4,可用A2来引用循环变量。类似地,B3的循环体是C3-D4。C4-D4:如果C3过滤的结果不空,则随机取记录存入B2,并将该记录追加到D4。C3:第1组(B2==null)数据直接返回,否则过滤出与B2间隔大于6小时的记录。B3:循环C3每组数据。

2022-12-29 09:30:38 343

原创 拆串后结构化,其中按行对齐

直观的办法是两个文件按行JOIN起来,用计算列就能获得sku。A1:读取文本文件的内容,将每一行作为一个成员返回成序列。A2:读取文本文件的内容,将每一行作为一个成员返回成序列。A3:拆出A2中的sku,并和A1进行连接。这段代码可以方便地集成进Java(参考。

2022-12-28 08:44:54 378

原创 动态列合并更新

提问者需要将两表的一些列进行合并,将 B 表的一些列更新到 A 表。题目中已经给出了 MERGE 语句的写法,难点在于他需要合并的列数是动态的。A2、A3:查询 A 表、B 表,设置 id 为序表主键。A4:按 id 合并两表去重,保留 B 中的记录。A2:查询 B 表中要更新到 A 表的字段。

2022-12-27 10:51:14 839

原创 记录内值排序

需求是把源表中每行数据中的数据排序,重新填到改行中。A3:根据 A2 每条记录转换成数组重排,再填回去。A1: 连接数据库。

2022-12-26 10:22:42 721

原创 动态表名的 SQL 语句

提问者需要根据 A 表中记录的 TABLENAME 查询对应 ID 在“TABLENAME 表”中的值。A3:根据 A2 每条记录的 TABLENAME 列动态拼 sql 并查询。有 3 个表,A,B,C。我要得到如下数据:通过表 A 用 ID 关联。A2:查询表 A 表成序表。A1: 连接数据库。

2022-12-23 12:18:57 732

原创 对记录做横向分栏

【问题】Hi i have a single list of employees. Each employee will have his name and salary.i have given the list of employees to a table but it appears as followsi mean each employee details appears in a single row . but i want them to appear side by side on

2022-12-20 09:58:28 286

原创 纵向分栏

报表工具中可通过 JDBC 访问集算器脚本,像数据库一样使用,参考。A3:将 A1 中的记录填入分栏后表中。Col 是报表参数,代表为分栏数。A1:查询 employee 表。A2:创建分栏后的表结构。

2022-12-19 11:05:36 307

原创 固定行数的纵向分栏

整张报表纵向分栏可在 jasper 中设置分栏数,但想固定行数为 4,而且只用于报表的局部,要实现这样的需求,可以在数据准备时将原数据表转换成 4 行多列的表。Row 是行数,Col 是分栏数,都是报表参数,这段代码可以将任意数据表进行纵向分栏,可以将 Row 固定为 4。JasperReport 可通过 JDBC 访问集算器,可以像数据库一样使用,参考。A2:将 A1 总记录数按 Row 行数做整除,对 A1 用空记录补齐。A4:使用 record 函数为分栏后的表填入数据。A3:生成分栏表结构。

2022-12-16 10:02:37 444

原创 如何做数据准备

用集算器准备,有许多结构化运算的函数,可以方便地准备出有关联的数据,也可以写出巨大的数据。

2022-12-15 10:36:00 95

原创 寻找用于数据准备的工具

用集算器准备,有许多结构化运算的函数,可以方便地准备出有关联的数据,也可以写出巨大的数据。R处理结构化数据的方法不太好用,而且性能实在太差了,对大文件的支持也不好。

2022-12-14 13:24:30 93

原创 寻找读 excel 写入 DB 的方案

Perl访问excel需要先执行cpan Spreadsheet::ParseExcel命令安装相关的类包,然后调用其接口访问。Java可以利用POI访问excel,但是在数据类型处理和数据计算(条件过滤、分组、连接等)方面都比较复杂。推荐使用集算器,读取excel只需要一行代码:=file("D:\\data.xls").xlsimport(),而且可以在IDE中浏览导入的数据。集算器支持jdbc,可以方便的将excel数据写入数据库,参考【虽然集算器不是开源的,但是有免费版本。

2022-12-13 11:13:07 110

原创 合并多文件后分组再结构化

复述问题:有N个文件相当于N条记录,逻辑上按ID分为M个组,将每组整理为一条记录,第2-4字段的值为将本组记录中该字段的第一个非空取值,如果都空,则本字段也为空。A5还可简化为:=A4.new(#1,${to(2,4).("~.(#"/~/").select@1(~)").concat@c()})A5:将每组整理为一条记录,第2-4字段的值为将本组记录中该字段的第一个非空取值。A3:读取每个文件中的内容,并将数据合并到一起。上述代码很容易和JAVA集成(可参考。A2:连接hdfs文件系统。

2022-12-12 12:07:10 366

原创 生成一些随机数据构成的 xls

I want to make a series of tables that each contain 25 values, that come from a set of 30 values. How can I quickly, and randomly, produce these tables? I'm wondering if there is a way in excel, or will I need to program something, myself? If so, which lan

2022-12-09 10:04:13 439

原创 寻找用 Java 访问 xls 的便捷方案,有数据集

What is the best way to read and edit an Excel file in Java?I have a large data set which is like impossible to enter manually. I have to make a program where I need that data set. Data is saved in an excel file. What is the best way to read and edit an ex

2022-12-08 10:55:12 253

原创 多个文件合并成 excel

各位大神,请问这个怎么搞我遇到这个问题,把几千个txt文本里面的数据存取到Excel文件中去。txt文本中的数据都是很规范的,这里给你例子文件夹 test 文件下文件名 a.txt,b.txt,c.txt等等 a.txt的内容是这样的 :数据A 数据B 数据C 注明:每个文本数据都是这样的,只有一行,数据A和数据B以及数据C之间都是用制表符隔开。现在的要求就是,把test文件下几千个文本文件都整合到一个Excel文件中去,每个文本中的三个数据占据一行,每个

2022-12-07 11:13:16 396

原创 如何实现 MongoDB join mysql

We have to generate a query including data from both mysql and mongodb. The result of query executed in mongodb will contains “city id”. We need to display city name instead of ‘city id’This city id has a reference to master table which is in mysql. The m

2022-12-06 12:15:42 731

原创 birt 如何实现 SQL 语句中带 in 的查询

最近弄个项目 需要用到 birt 。目前为止接触 birt 时间比较短。项目中的报表比较复查。其中一个 需要用到 select * from XX where id in(?) 语句。 试过很多方法 发现都不能成功。 上网查找貌似也没找到什么关于这方面的 资料 故 咨询各位 birt 大神。具体如下:查询各个直属区域下的数据统计,传入的参数格式为 1,2,3,4 且不定长。BIRT 中对带 in 的查询的确比较复杂,由于 BIRT 不直接支持数组参数参与查询,即:无法把一个数组直接传给 DataSet

2022-12-05 10:37:26 426

原创 动态改变列数做分页

用存储过程可以拼成上面的结果集,但代码难度较大,这里可以选用集算器实现,在数据源阶段将 10 列 N 行的结果集拼成 5 列 N*2 行,再在每页开头补上列名。A4:循环 A3 的每组数据,每次向 A2 插入 14 行:前 5 列列名、前 5 列的 6 行、后 5 列列名,后 5 列的 6 行。A3:将 A1 每隔 6 行分一组,# 表示行号,"\" 表示整除。报表工具中可通过 JDBC 访问集算器脚本,像数据库一样使用,参考。A1:执行 SQL,取出 10 列 N 行的数据。A2:创建新的空二维表。

2022-12-02 10:47:44 142

原创 单字段纵向分栏

报表工具中可通过 JDBC 访问集算器脚本,像数据库一样使用,参考。A5:将 A2 记录填入分栏后的表。A2:对 A1 的字段值做拆分。A4:创建分栏后的表结构。

2022-12-01 09:39:41 224

原创 从数据库读数据写到 xls

函数xlsexport支持导出为xls或xlsx,@t表示在首行写入字段名。上述代码不仅可以在命令行执行,也很容易集成到JAVA,参考【数据库到Excel的问题,并非一定要用java编程去处理,推荐SPL去解决,只需建立数据源并输出数据。A2:将数据输出到Excel文件。A1:建立数据源连接。

2022-11-30 09:12:56 248

原创 BIRT 横向分栏

实现方法大都要使用行间计算,用报表脚本或 SQL 实现起来太复杂。BIRT 可以通过 JDBC 连接集算器,调用脚本方法和调用存储过程一样,详情参考【A3:使用 record 函数为分栏后的表填入数据。A2:生成分栏表结构。

2022-11-29 10:49:38 338

原创 分组后统计查询

表示对A2中的每个成员依次计算,(a=~.max(col4),~.select(col4==a|| col4==10)) 表示依次计算括号内的表达式,并返回最后一个表达式的结果。其中a=~.max(col4)表示将每组数据中col4的最大值返回给变量a,~.select(col4==a|| col4==10)表示选择每组中clo4等于a或者10的记录,~.select(col4==a|| col4==10)就是括号运算符要返回的结果。A1:读取文件file.txt中的内容。A2:按Names分组。

2022-11-28 09:54:56 244

原创 分组后取最大值对应记录

A1:#1表示第1列,~表示按#1分组后的每组数据,maxp返回字段求最大值对应的记录。

2022-11-25 10:21:14 107

原创 分组后取最大值对应记录

A1:#1表示第1列,~表示按#1分组后的每组数据,maxp返回字段求最大值对应的记录。

2022-11-25 10:20:11 364

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除