Yaroslav Schekin
А Вы уже убедились, что этот недостаточно эффективен?
А так — я даже сходу не вижу подходящего метода или структуры данных, с помощью которых этап сортировки по найденным максимальным датам мог бы быть эффективнее. Их выборку ещё можно сделать эффективнее, если разных значений state относительно мало (loose index scan), но дальше-то сортировать всё равно придётся... нет?
Причём если колонка date на самом деле является каким-нибудь timestamp, имеющим в жизни натурально чуть ли не уникальное значение в каждой строке, то в плане индексирования под такую вот выборку всё, по идее, становится ещё интереснее