Добрый день.
Кто-нибудь замерял скорость работы Left Join, Left Keep и Exist? Что быстрее?
Задача выдащить свежие данные по идентификатору.
Решал так:
load
class_name,
max(created_at) as created_at
resident table
group by class_name;
left join
load
class_name,
created_at,
...
resident table;
Но такое решение очень долгое.
//в таблице с данными 400 млн. записей
Ну, эти 3 оператора совсем разные и решают разные задачи. Когда нужно загрузить только те значения справочника, которые существуют в факте, то я обычно использую Where exists (), хотя keep работает не хуже. Join бывает медленным на больших данных, но без него не обойтись, если нужно объединить данные из двух таблиц в одну. В вашем примере, самое медленное пожалуй это GROUP BY. Тут я бы постарался извернуться и найти другое решение, без GROUP BY...