그룹에서 가장 높은 값을 삭제하려고합니다. 이 데이터를 감안할 때 :그룹에서 가장 높은 값을 삭제하는 방법
group_table
내가 두 번째와 다섯 번째 행을 제거하고 싶습니다group_id | st_area
---------------
1 | 20
1 | 30
2 | 1
2 | 1
2 | 200
. 나는 각 그룹에서 가장 높은를 선택하는 방법을 알고 :
SELECT max(area) FROM group_table GROUP BY group_id
그래도 난, 하위 쿼리로 받아 들일 것이다 삭제 문을 공식화하는 방법을 알아낼 수 없습니다. 시도 할 때 delete from group_table where st_area = max(st_area);
나는 aggregates not allowed in WHERE clause
을 얻습니다.
내가 매우 빨리 배웠던 한 가지는 내가 끔찍하게 훌륭한 의사 전달자가 아니라는 것입니다. 내가 묻고있는 것이 확실하지 않다면 & 당신은 참을성이있다. 분명히 분명히하려고 노력할 것이다.
감사합니다.
기본 키를 가지고 수행
경우이 같은 구조를 가지고? 그렇지 않다면 두 개의 MAX 행 (예 : 1,30)이 중복되는 경우 수행 할 작업은 무엇입니까? – Dutow
아니요, 기본 키가 없지만 임시 테이블이므로 하나 추가하기 쉽다. st_area 열은 소수에 가까운 것으로 계산되기 때문에 유일 할 정도로 가깝습니다. 10 자리 길이입니다. :) – canisrufus