[导入]交叉表:平面表的并置
交叉表(Cross Table)的基本特点是具有横纵两个自由延展的维度,而平面表结构只有一个可延展的维度,因为平面表的列名和列数是确定的。例如,地区的产品销售数量,在平面表中表达为
district_id product_id sell_num
如果表现为交叉表,则为
productA productB
districtA sellNum sellNum
districtB sellNum sellNum
这种结构上的失配需要通过程序逻辑来进行调整。
注意到平面表结构只具有一个可延展的维度,而join可以看作是该维度上的连接操作。因此我们可以将交叉表看作是多个简单平面表结构并置的结果。即分解为
A:
productA
districtA sellNum
districtB sellNum
B:
productB
districtA sellNum
districtB sellNum
横向维度的扩展在程序中表达。
SqlInfo结构封装了这种简单平面表的分解片断。
class SqlInfo{
List fieldNames;
SQL sql;
String keyField;
}
我们在程序中通过JoinBuilder来实现横向维度的构造
JoinBuilder.begin(sqlInfoA)
.join(sqlInfB)
.leftJoin(sqlInfoC)
.end();
生成的sql语句示例如下
select sqlInfoA.fieldNames, sqlInfoB.fieldNames
from sqlInfoA.sql join sqlInfoB.sql
on sqlInfoA.keyField = sqlInfoB.keyField
- 11:02
- 浏览 (346)
- 评论 (0)
- 分类: Witrix开发平台
- 相关推荐
发表评论
- 浏览: 107256 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
最近加入圈子
链接
最新评论
-
关于REST
说的太抽象,看完之后好像是理解了,又好像很模糊。
-- by zjq_blog -
[导入]关于jsplet的一些 ...
我有一个疑问:把一个request || response带入到biz里面会不会 ...
-- by deepthink -
C++配置管理
boost里已经有现成的啦!
-- by jimmy_c -
不完全的计算
当我们 oo 的时候,一般都不认为自己在“计算”,当我们计算的时候,根本就想不起 ...
-- by hotman_x -
面向集合的框架设计
嘿嘿,说句不合时宜的话,一个事物“完美”是因为它已经没有价值,没有改进的必要。费 ...
-- by hotman_x






评论排行榜