Неофициальный форум пользователей Qlik Sense & Qlikview

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: Валерий от 09 октября 2018, 09:09:18

Название: Загрузка данных без дублей по одному полю
Отправлено: Валерий от 09 октября 2018, 09:09:18
Добрый день!
Имеется таблица:

ID_cl     ФИО
1           Иванов И.И.
1           Иванов Иван Ив.
1           Иван Иванов
2           Петров Пётр
3           Сидоров С.С.
3           Сидоров Сидор

Нужно загрузить данные в QS как, чтобы поле ID_cl  не повторялось, т.е. в экселе это называлось бы уделением дублей по 1му столбцу. После загрузки должно остаться:

ID_cl     ФИО
1           Иванов И.И.
2           Петров Пётр
3           Сидоров С.С.

или

ID_cl     ФИО
1           Иван Иванов
2           Петров Пётр
3           Сидоров Сидор

Т.е. из 2го столбца должно остаться одно любое значение.
Заранее спасибо
Название: Re: Загрузка данных без дублей по одному полю
Отправлено: Hugo от 09 октября 2018, 12:39:55
Добрый день.
Я новичок, поэтому не претендую на идеальный код, и сам вижу недостатки (кстати может кто подскажет как загрузить всё в другую таблицу так фильтруя), но для сортированных данных работает так:
Personal:
Load * Inline [
ID_cl|ФИО
1|Иванов И.И.
1|Иванов Иван Ив.
1|Иван Иванов
2|Петров Пётр
3|Сидоров С.С.
3|Сидоров Сидор
] (delimiter is '|');

Otbor:
load * ,ID_cl as tmp
resident Personal
where [ID_cl]<>peek(ID_cl)
;
drop table Personal;
rename table Otbor to Personal;
drop fields tmp from Personal;
Название: Re: Загрузка данных без дублей по одному полю
Отправлено: admin от 09 октября 2018, 12:42:46
Привет, либо так:


t1:
LOAD * INLINE [
    F1, F2
    1, Иванов И.И.
    1, Иванов Иван Ив.
    1, Иван Иванов
    2, Петров Пётр
    3, Сидоров С.С.
    3, Сидоров Сидор
];

t2:
LOAD Distinct F1 Resident t1;
Left join (t2)
load F1,
MinString(F2) as ФИО
Resident t1
Group by F1;
Название: Re: Загрузка данных без дублей по одному полю
Отправлено: Валерий от 09 октября 2018, 02:02:00
Благодарю   :)
Название: Re: Загрузка данных без дублей по одному полю
Отправлено: Maestro от 17 октября 2018, 09:36:23

Personal:
Load * Inline [
ID_cl|ФИО
1|Иванов И.И.
1|Иванов Иван Ив.
1|Иван Иванов
2|Петров Пётр
3|Сидоров С.С.
3|Сидоров Сидор
] (delimiter is '|');

Otbor:
LOAD ID_cl,
FirstValue(ФИО)
Resident Personal
Group By ID_cl;

DROP Table Personal;
Название: Re: Загрузка данных без дублей по одному полю
Отправлено: Валерий от 19 октября 2018, 11:20:00
Maestro, спасибо!
Не знал про FirstValue :)
Название: Re: Загрузка данных без дублей по одному полю
Отправлено: Maestro от 19 октября 2018, 05:17:23
Пожалуйста :)
Там еще LastValue есть, если что.