Загрузка данных без дублей по одному полю

Автор Валерий, октября 09, 2018, 09:09:18 am

« предыдущая - следующая »

Валерий

Добрый день!
Имеется таблица:

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

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

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

или

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

Т.е. из 2го столбца должно остаться одно любое значение.
Заранее спасибо

Hugo

Добрый день.
Я новичок, поэтому не претендую на идеальный код, и сам вижу недостатки (кстати может кто подскажет как загрузить всё в другую таблицу так фильтруя), но для сортированных данных работает так:
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;

admin

Привет, либо так:


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;


Maestro


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;

Валерий


Maestro

Пожалуйста :)
Там еще LastValue есть, если что.