У меня есть таблица, например, так:мне нужна самая последняя запись в Join (PostgresSQL)
call_activity (
call_id TEXT,
activity_type TEXT,
activity_time TIMESTAMP,
PRIMARY KEY(call_id, activity_type, activity_time)
)
activity_type
может быть один из примерно 9 различных строк:
'started'
'completed' (about 5 variations on this)
'other' (these are the states that I want to display)
Вызов имеет серии событий, начиная с «начатого» и заканчивая завершенным событием (одним из 5 возможных). Мне нужно взглянуть на это с двумя столбцами: первый столбец должен быть временем активности события «запущено», второй столбец должен быть самым последним событием для этого вызова. В этом представлении должны быть только вызовы, для которых не завершено событие.
У меня есть набор вложенных соединений на нем, но они медленны, как ад. Мне нужно разумно оптимальное представление об этом. Может кто-нибудь мне помочь?
Тот факт, что у вас есть как call_id, так и activity_type как TEXT, не совсем помогает в отношении производительности. Есть ли причина иметь их как ТЕКСТ, а не, скажем, varchar (или даже целое/bigint для call_id)? – ChssPly76
Оставляя в стороне типы - по какой теме я согласен с вами, кстати, любая идея, как оптимизировать ее как-есть? –
Не существует разницы в производительности между TEXT и varchar. Очевидно, что целое число будет быстрее, если модель поддерживает это. –