Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
maxim1500
Partner - Creator
Partner - Creator

Join + Group By in Qlik Sense

Hi,

I am trying to translate this sql query into a load script using a qvd file. The idea is to precalculate fees for the trailing 12 months at load to speed up things. This result is used in a complex score calculation that must be precalculated, so I cannot use a calendar to do it on the fly. PositionMonthlySnapshot is a 235 millions rows table.

Here is the SQL that would do the expected behavior:

SELECT client_sk, d.snapshot_date, sum(firmcur_management_fees) FROM bi_poc_demo.position_monthly_fact p

join bi_poc_demo.t12_dates d on p.snapshot_date = d.t12_date

group by client_sk, d.snapshot_date

Here is the load script:

[T12 Months]:

Load

  Floor([Snapshot Date]) as [Snapshot Date Master],

  Floor(MonthEnd(AddMonths([Snapshot Date], -IterNo() + 1))) as [Snapshot Date]

Resident [Snapshot Dates]

While IterNo() <= 12;

[Position T12 Tmp]:

LOAD [Client ID], [IA Code ID], [Branch ID], [Security ID], Floor([Snapshot Date]), [Position Management Fees],

FROM 'lib://QVDLib/PositionMonthlySnapshot.qvd' (qvd);

INNER JOIN ([Position T12 Tmp])

LOAD [Snapshot Date], [Snapshot Date Master]

RESIDENT [T12 Months];

[Position T12]:

LOAD [Client ID], [Snapshot Date Master], SUM([Position Management Fees])

RESIDENT [Position T12 Tmp]

GROUP BY [Client ID], [Snapshot Date Master];

Although this script would work, the join between [Position T12 Tmp] and [T12 Months] causes a 235M x 12 table, which makes me run out of RAM. Is there a better way to do this using Qlik, or will I have to do it in the warehouse?

Thanks!

2 Replies
robert_mika
Master III
Master III

Is this full script?

I can not see any drop table statement

I believe the T12Months is redundant?

What is the join between Position T12 tmp and the next Table?

Is ClientID the key?

maxim1500
Partner - Creator
Partner - Creator
Author

No it's not the full script, just the part equivalent to the SQL. The T12 Table is deleted after the join. T12Months contains the 12 months for each [Snapshot Date]. The idea is to sum the [Position Management Fees] for each T12 for each month. The expected result is:

Client IDSnapshot DateT12 Fees
1Jan 31 2015456.42
1Dec 31 2014235.24

etc.

So basically, I need a T12 calculation for each entry in position_monthly_fact.