У меня проблема: моя таблица достаточно большая (миллионы строк данных), это временные данные, которые я обрабатываю. Мне нужно выбрать max и min одного столбца, присоединяющегося к некоторым критериям, обработать эту информацию и удалить данные в соответствии с теми же критериями. На самом деле, самая простая реализация выглядит следующим образом:удаление и возврат данных в PostgreSQL
select max(col), min(col) from _TABLE_ where _CONDITION_;
...
delete from _TABLE_ where _CONDITION_;
стол большой, и когда я его обработать, quering, что путь в цикле, это занимает некоторое время. Я думал, что я могу оптимизировать его с помощью «возвращения» в удалении, как
delete from _TABLE_ where _CONDITION_ returning max(col), min(col);
было бы совсем то, что мне нужно, но ... это не работает вообще :) говорить, что я не могу использовать агрегатные функции в возвращаемой статье ...
есть ли хороший способ улучшить два запроса (выбор максимального/минимального количества данных и удаление тех же данных), вместо этого сделав один запрос? Любой трюк?
спасибо заранее за любую информацию, Maxym
Являются _CONDITIONS_ взаимоисключающими и относительно низкой номер? – cope360
извините, что вы имеете в виду? Фактически «col» .. hm, в действительности у меня есть две колонки, которые представляют координату точки (широта и долгота), поэтому я выбираю удаление всех точек из таблицы в соответствии с некоторым прямоугольником, но я должен знать, что было min/max долгота и долгота удаленных точек (реальный, потому что примерно я мог взять прямоугольник :) – Maxym