- 浏览: 163514 次
最新评论
-
mx122723:
不错,学习了!
解决报表特殊布局的若干示例 -
Long_yuan:
说了半天加个字段就好了嘛。。。。。。
MongoDB的本地化排序 -
windlike:
...
查询MongoDB子文档的List字段 -
Long_yuan:
既然用mongodb 还是赶紧丢掉sql设计范式吧
MongoDB的外键关联处理 -
datamachine:
m635674608 写道收费的吧???不是开源的吧??有免费 ...
结构化文本文件之间的集合运算
文章列表
来源:https://groups.google.com/forum/#!topic/mongodb-user/Rjv6lyUCe1s 。
Collction last3有两个字段:variable和timestamp,需要先按variable分组,选出每组文档中timestamp最晚的3个,再从这些文档中找到timestamp最早的1个。
last3的部分数据如下:
集算器代码:
A1:连接MongoDB,连接字格式为
问题来源:https://groups.google.com/forum/#!topic/mongodb-user/BpgEaRqrKsA
Collection C1的部分数据如下:
要求按name分组,每组数据是相同的name对应的子文档中的users字段,且数据不能重复。计算结果类似:
集算器代码:
A1:连接MongoDB,连接字格式为mongo://ip:port/db?arg=value&… 。
问题来源:http://bbs.csdn.net/topics/391014229。
表1(tb1)中SL字段数据如下:
SL
5
7
7
8
8
5
7
8
2
3
4
2
MSSQL,ORACLE等数据库都有MERGE语句,用于更新表很方便。但源表和目标表来自不同数据库时,就很难直接使用MERGE语句了。这时候,可以用集算器来协助处理。
参数source和target代表两个结构相同但数据不同的表,分别属于两个不同的数据库,要求以主键为标准用source更新target,比如table1和table2的主键都是A和B,数据如下:
用table2
MSSQL,ORACLE等数据库支持MERGE语句更新表,但表结构未知时,由于缺乏集合类数据,用存储过程获得表结构再动态拼出SQL非常麻烦,代码会有几十行之多;同样原因,用Java等高级语言实现也不简单。而且使用存储过程或Java程序需要代码将内置于数据库或应用程序中,更新管理较为麻烦。这时候可用集算器来协助处理,代码可置于数据库和应用程序之外,不影响数据库与应用程序的结构,易于维护。
参数source和target代表两个结构相同但数据不同的表,要求以主键为标准用source更新target,比如table1和table2的主键都是A和B
表rbd_dtl的RBP_VALUE字段存储着字符串“ALL”和一些字母,现在要将该字段拼成分段的字符串,形如: A-F,H,J-K,N-O,Q-S,U-V,X-Z
源数据如下:
具体规则是:
如果RBP_VALUE=“ALL”,则舍去该值。
如果RBP_VALUE前后都是连续的字母,则取第一个字母和最后一个字母作为一段,中间用横杠,比如“A-F
问题来源:
https://www.linkedin.com/groups/update-records-based-on-rank-1890173.S.5914444354742661123?trk=groups_items_see_more-0-b-ttl
目标:随机更新表TMP_SURVEY_TRAN_BZ_3_WORKING中符合条件的20条记录,将Quota_Include_Ind字段更新为“Y”。更新时有优先级,如果customer_type='r'的记录大于20条,则随机更新这里的20条记录。如果customer_type='r'的记录小于20条(比如15条),则更新这15条 ...
问题来源:http://bbs.csdn.net/topics/391012377 。
表1(tb1)中部分源数据如下:
Prjno Subtask Ddate Num
P9996 P9996-sub002 2015-01-01 123
P9996 P9996-sub002 2015-01-02 134
P9996 P9996-sub002 2015-01-03 345
P9996 P9996-sub002 ...
问题来源:http://bbs.csdn.net/topics/390991336 。
表1(T1)中存储了单独的id和name字段,部分源数据如下:
id name
1 a
2 b
3 c
4 d
5 e
表2(T2)中存储了多个id组成的ids字段,其值如下:
在实际业务中经常需要拼接动态SQL来完成复杂数据计算,网上各类技术论坛都有讨论,比如下面这些问题:
http://bbs.csdn.net/topics/390876591
http://bbs.csdn.net/topics/390981627
https://www.linkedin.com/groups/SQL-Query-Help-needed-137774.S.5948812806903119877?trk=groups_items_see_more-0-b-ttl
http://bbs.csdn. ...
SQL集合无序使得完成有序计算比较困难,而这类计算在实际业务中又非常常见,网上有很多讨论,比如:
http://bbs.csdn.net/topics/390959904
http://bbs.csdn.net/topics/390994046
http://bbs.csdn.net/topics/390980889
...
动态行列转换的计算在实际业务中很常见,网上各类技术论坛上都有讨论,比如下面这些问题:
http://www.iteye.com/problems/87788
http://bbs.csdn.net/topics/390869577
http://bbs.csdn.net/topics/391000711
http://bbs.csdn.net/topics/391001035
http://bbs.csdn.net/topics/390888703
http://bbs.csdn.net/topics/391012377
http://bbs.csdn.net/to ...
REF_VALUES是数据库表,ID是主键,ORIGINAL_VALUE是源列,将ORIGINAL_VALUE打乱次序后要更新到空列SHUFFLED_VALUE。部分数据如下:
SQL:
不同的数据库写法不同,以Oracle为例:
create or replace procedure shuffle ...
多层固定分组也是我们经常面对的一种复杂SQL式计算。实现该算法的核心思路是用left join语句将源数据按照固定的依据对齐,但由于该算法往往涉及分组汇总、行间计算、填补缺失数据,而且层次较多,因此相应的SQL语句会很复 ...
SQL的join语句比较抽象,只适合表达较简单的关联关系,一旦关联的层级较多,相应的代码就会变得很复杂。集算器可以用对象引用表达关联关系,代码更加直观,下面用一个例子来说明。
表channel存储着某网站所有的频道及其上级频道的对应关系,分别用id和parent字段来表示,最多四级,其中root代表网站本身(即根节点)。请根据输入参数列出某频道的下一级、下两级、下三级频道的名字,用逗号分隔。表channel中的部分数据如下:
集算器代码: