Я разрабатываю систему с использованием Trac, и я хочу ограничить количество возвращаемых записей «changelog». Проблема заключается в том, что Trac сопоставляет эти записи из нескольких таблиц с помощью union
, а затем объединяет их в отдельные «изменения» на основе их метки времени. Я хочу ограничить результаты до последних, например. 3 набора изменений, но для этого требуется получить столько строк, сколько необходимо, пока у меня не будет 3 уникальных временных отметки. Решение должно работать для SQLite/Postgres.Ограничить результаты группами x
Текущий SQL Результат
Time User Field oldvalue newvalue permanent
=======================================================================
1371806593507544 a owner b c 1
1371806593507544 a comment 2 lipsum 1
1371806593507544 a description foo bar 1
1371806593324529 b comment hello world 1
1371806593125677 c priority minor major 1
1371806592492812 d comment x y 1
Предназначенный SQL Result (Ограничена 1 метка времени, например)
Time User Field oldvalue newvalue permanent
=======================================================================
1371806593507544 a owner b c 1
1371806593507544 a comment 2 lipsum 1
1371806593507544 a description foo bar 1
Спасибо за это. В конце концов, я решил в основном сделать это (хотя наши шаблоны сильно отличаются от ванильного trac). Я изменил get_changelog как функцию генератора, которая также должна ускорить процесс. Я понимаю, что даже если бы мне пришлось делать это с SQL, это было бы запутанным заявлением, но я все равно чувствую, что получаю все результаты, а затем только использование нескольких не спасет меня столько времени. –