Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us in NYC Sept 4th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
gz
Creator
Creator

extractiong and replacing max values ​​for group by

I have a script that loads data
Umowy:

LOAD id_typ_umowy,
typ_umowy,
id_forma_umowy,
forma_umowy,
id_status_umowy,
status_umowy,
nr_umowy,
migrated,
data_generacji,
data_zawarcia,
Year(data_aktywacji) as Rok_data_aktywacji,
Date(MonthStart (data_aktywacji), 'MMM-YYYY') as Miesiac_Rok_data_aktywacji,
num(month(data_aktywacji)) as NumerSotrowanie_data_aktywacji,
data_aktywacji,
data_rozwiazania,
id_nadklient;

[bq_contract]:
SELECT "id_typ_umowy",
"typ_umowy",
"id_forma_umowy",
"forma_umowy",
"id_status_umowy",
"status_umowy",
"nr_umowy",
"migrated",
"data_generacji",
"data_zawarcia",
"data_aktywacji",
"data_rozwiazania",
"id_nadklient"
FROM "qlick"."bq_contract";

I would like Miesiac_Rok_data_aktywacji and Rok_data_aktywacji to be only one for id_nadklient. Now there may be several of them, I would like the one with the maximum data_aktywacji to be taken.

I'm traying with:
Temp_Max_Data_Aktywacji:

LOAD id_nadklient, max(data_aktywacji) as max_data_aktywacji

RESIDENT [bq_contract]

GROUP BY id_nadklient;

but no result. Maybe someone can help me

Labels (2)
6 Replies
marksouzacosta

Try this at the end of your Load Script:

Temp_Max_Data_Aktywacji:
LOAD
id_nadklient, 
max(data_aktywacji) as max_data_aktywacji
RESIDENT
[Umowy]
GROUP BY 
id_nadklient
;

Important: make sure data_aktywacji is a date field. It cannot be a text.

Read more at Data Voyagers - datavoyagers.net
Follow me on my LinkedIn | Know IPC Global at ipc-global.com

gz
Creator
Creator
Author

Table [Umowy] not found, if I change it to "Umowy" it's the same error message

piotr-bratek
Creator
Creator

Hi,
If you need a support you should always provide more information. This time e.g.:

# processing outcome - e.g. a screen of the output table or of the error (we don't know what "no result" means)
# you can also share some rows from your input data

Then it's easier for the community to help you.

# Are you sure your date has been recognized as a date ?
# paste a screenshot of your script suggested by @marksouzacosta - his suggestion should work, so it's either sth wrong with the data or the way you applied the script

pozdrowienia 😉
Piotr

The most experienced Qlik Trainer in Central Europe
Kushal_Chawda

@gz  try below

Inner join(bq_contract)

LOAD id_nadklient, 

           max(data_aktywacji) as data_aktywacji

RESIDENT [bq_contract]

GROUP BY id_nadklient;

gz
Creator
Creator
Author

it worked when I changed RESIDENT to [bq_contract]
Now I have:

Umowy:
 
LOAD id_typ_umowy, 
typ_umowy, 
id_forma_umowy, 
forma_umowy, 
id_status_umowy, 
status_umowy, 
nr_umowy, 
    migrated,
data_generacji, 
data_zawarcia, 
    Year(data_aktywacji) as Rok_data_aktywacji,
    Date(MonthStart (data_aktywacji), 'MMM-YYYY') as Miesiac_Rok_data_aktywacji,
    num(month(data_aktywacji)) as NumerSotrowanie_data_aktywacji,
Date(data_aktywacji) as data_aktywacji, 
data_rozwiazania, 
id_nadklient;
 
[bq_contract]:
SELECT "id_typ_umowy",
"typ_umowy",
"id_forma_umowy",
"forma_umowy",
"id_status_umowy",
"status_umowy",
"nr_umowy",
    "migrated",
"data_generacji",
"data_zawarcia",
"data_aktywacji",
"data_rozwiazania",
"id_nadklient"
FROM "qlick"."bq_contract";
////////////////////////////////////////////
Temp_Max_Data_Aktywacji:
LOAD 
id_nadklient, 
Date(max(data_aktywacji)) as max_data_aktywacji
RESIDENT
[bq_contract]
GROUP BY 
id_nadklient
;
how can I join this Temp_Max_Data_Aktywacji to replace 
Date(MonthStart (data_aktywacji), 'MMM-YYYY') as Miesiac_Rok_data_aktywacji,
 
to 
Date(MonthStart (max_data_aktywacji), 'MMM-YYYY') as Miesiac_Rok_data_aktywacji,
 
Kushal_Chawda

@gz  don't think I understand it , but try below

Inner join(bq_contract)

LOAD id_nadklient, 

           date(max(Miesiac_Rok_data_aktywacji),'MMM-YYYY') as Miesiac_Rok_data_aktywacji

RESIDENT [bq_contract]

GROUP BY id_nadklient;