深入理解QV的内存关联机制的问题

0
为了保证QV的结果可控,需要清晰理解QV的关联机制。在系统如果加载了重复的脏数据的情况下,知道结果集合的含义。
a:
Load * INLINE [
id,avalue
1,1
1,1];

b:
Load * INLINE [
id,bvalue
1,2
1,2
];
a表有重复集合,b表中有重复集合,ID是关联字段。他的笛卡尔积为4行。
但是在QV中,tableBox,仅显示一行,straight表也仅仅显示一行。并且计算的结果不是最终笛卡尔集的累计结果
问题:
1、QV针对这种类型的脏数据,它的关联方式与笛卡尔集的差别?
2、在Straight表中的Total类型有一个是Expression total ,这个与Total sum,有什么区别?
 
 
已邀请:
0

曹浩 - QlikView顾问、QV讲师 2016-01-31 回答

1.QV的存储机制对于初学者来说是有点难以理解,他的原理既简单又复杂,简单来说可以理解为QV会自动合并重复数据一遍达到节省存储空间的目的,但是计算数据的时候又会以真实的数据进行计算,这也是内存型BI所要关注的首要问题。所以你的第一个问题,其实每个表也就一行数据,并不存在笛卡尔积。
参考下图以便于理解,点选频率以便查看数据在QV中的存储情况:

20160131_1.png

 
2.表达式合计和行合计是有区别的,可以参考下图:

20160131_2.png

 
0

stevenclaro 2016-02-01 回答

要回复问题请先登录注册