真的要吐槽下百度上QlikView的资料少之又少,今天竟然还访问不了Google了。索性以后把新学会的QlikView的函数等大大小小知识点都放到CSDN来好了。希望能遇见更多一起学习研究QlikView的同道中人。
QlikView中介绍Autonumber的格式是这样的: autonumber(expression[ , AutoID])
个人觉得有些费解,其实说白了Expression就是若干个字段的组合,一个字段或者N个字段拼在一起,autonumber会自动为这若干个字段生成一个distinct结果集,然后计算出源数据集中每一行若干个字段值在这个distinct结果集中的位置。
比如某数据集有几个字段:
TestAutoNumber: Load * Inline [ Field1, Field2, Field3, Field4 1, 2, 3, 4 1, 3, 3, 6 2, 4, 5, 6 ];
AutoNumber(Field2) as b会生成distinct结果集: 2, 3, 4
Table1: LOAD *, AutoNumber(Field1, 'counter1') as a, AutoNumber(Field2, 'counter2') as b, AutoNumber(Field1&Field2, 'counter3') as c, AutoNumber(Field1&Field2&Field3, 'counter1') as d Resident TestAutoNumber; DROP Table TestAutoNumber;
b列返回的值是1,2,3, 因为第一行数据中字段Field2的值在该Distinct结果集排序是1, 第二行数据中字段Field2的值在Distinct结果集排序是2,以此类推,
c列将用Field1和Field2合并后的值生成DISTINCT结果集,然后获得每一行数据中Field1&Field2在该结果集中的排序位置。
a列和d列有所不同,因为他们的第二个参数是一样的都是‘counter1‘,因此a和d中的Field1以及Field1&Field2&Field3合并生成同一个distinct结果集。计算a时判断每一行数据中Field1在该合并后的distinct结果集中的排序位置,计算d时会判断每一行数据中Field1&Field2&Field3在该Distinct结果集中的排序位置。
QlikView AutoNumber函数,布布扣,bubuko.com
原文地址:http://blog.csdn.net/zplume/article/details/27385171