다음과 같은 문제점이 있습니다. 내 테이블이 너무 큽니다 (수백만 개의 데이터 행), 이는 처리하는 임시 데이터입니다. 나는 어떤 기준에 부합하는 하나의 열의 최대 값과 최소값을 선택하고,이 정보를 처리하고 같은 기준에 따라 데이터를 제거해야한다.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);
그것은 절대적으로 내가 필요한 것,하지만 ... 내가이 집계 함수를 사용할 수 없다는 이야기 :) 전혀 작동하지 않습니다 return 절에서 ...
두 개의 쿼리 (데이터의 최대/최소 선택 및 동일한 데이터 삭제)를 개선하여 쿼리 하나를 대신 작성하는 좋은 방법은 무엇입니까? 어떤 속임수?
어떤 정보가 사전에 감사합니다, Maxym
이 _CONDITIONS_ 상호 배타적와 상대적으로 낮은 번호? – cope360
죄송합니다. 무엇을 의미합니까? 사실 "col".. hm, 사실 저는 포인트 (위도와 경도)의 좌표를 나타내는 두 개의 컬럼을 가지고 있습니다. 그래서 어떤 직사각형에 따라 테이블에서 모든 포인트를 지우도록 선택 합니다만, 최소/최대가 무엇인지 알아야합니다. 삭제 된 포인트의 경도와 경도 (실제, 왜냐하면 대략 내가 직사각형을 가질 수 있기 때문에 :) – Maxym