获取在一个语句中加载的多个文件的计数
Get count of multiple files loaded in one statment
我想获取多个文件中所有行的总量,保存为QVD。实际上,用一个文件我会这样完成:
data:
LOAD count(id) AS counter FROM data.qvd (qvd);
LET number = Peek('counter');
当然,我知道我也可以在一个命令中使用 RowNo()
或 Count()
整个 table,但我想用那个解决方案试试这个。
现在,当我尝试在一个语句中获取多个文件时,如下所示,我总是只获取最后一个加载文件的数量,而不是总数:
data_multiple:
LOAD count(id) AS counter FROM data_*.qvd (qvd);
LET number_multiple = Peek('counter');
现在我的问题是如何获取全部行数,而不仅仅是最后一行。
到目前为止我尝试了什么
我已经尝试过这样重新排列语句:
data:
LOAD id FROM data_*.qvd (qvd);
LOAD Count(id) AS counter Resident data;
LET number = Peek('counter');
但我还是得到了同样的结果。有什么方法可以做到这一点吗?
我也问过同样的问题question on the official Qlik Community page。在那里我收到了一个答案:
let total_number = 0;
for each file in filelist('D:\Data\data_*.qvd')
QVDRecords: load QvdNoOfRecords('$(file)') as Counter, '$(file)' as Source autogenerate 1;
total_number = total_number + Peek('Counter');
next
trace QVD: $(total_number);
我想获取多个文件中所有行的总量,保存为QVD。实际上,用一个文件我会这样完成:
data:
LOAD count(id) AS counter FROM data.qvd (qvd);
LET number = Peek('counter');
当然,我知道我也可以在一个命令中使用 RowNo()
或 Count()
整个 table,但我想用那个解决方案试试这个。
现在,当我尝试在一个语句中获取多个文件时,如下所示,我总是只获取最后一个加载文件的数量,而不是总数:
data_multiple:
LOAD count(id) AS counter FROM data_*.qvd (qvd);
LET number_multiple = Peek('counter');
现在我的问题是如何获取全部行数,而不仅仅是最后一行。
到目前为止我尝试了什么
我已经尝试过这样重新排列语句:
data:
LOAD id FROM data_*.qvd (qvd);
LOAD Count(id) AS counter Resident data;
LET number = Peek('counter');
但我还是得到了同样的结果。有什么方法可以做到这一点吗?
我也问过同样的问题question on the official Qlik Community page。在那里我收到了一个答案:
let total_number = 0;
for each file in filelist('D:\Data\data_*.qvd')
QVDRecords: load QvdNoOfRecords('$(file)') as Counter, '$(file)' as Source autogenerate 1;
total_number = total_number + Peek('Counter');
next
trace QVD: $(total_number);