SQL에서 group by의 조건에 관한 질문입니다

gusiri의 이미지

예산이 1000 이 넘는 부서만을 관리하는 manager의 id를 출력하는 문제인데요.

id budget
----------------------------
101 500
101 1500
102 2000
102 3000

이런 데이터가 주어진다면

id
--------------
102

를 출력해야 합니다. 그래서 만든 SQL문이

SELECT D.managerid
FROM dept D
GROUP BY D.managerid
HAVING EVERY ( D.budget > 1000 );

인데 네번째 줄에 우괄호 누락이라고 하면서 자꾸 오류가 나네요.
어디가 잘못된 것인가요? 배운지 얼마 안되어서 너무 헷갈립니다ㅠ

puritysb의 이미지

저도 잘 모릅니다만..
걍 select distinct id from dept where budget > 1000 하면 안되는 이유라도 -.-;;;;

질문에 벗어난 답변이라 죄송함니다 (__);

dalili의 이미지

이것은 문법에 틀립니다
SELECT D.managerid
FROM dept D
GROUP BY D.managerid
HAVING EVERY ( D.budget > 1000 );

다음과 같은 형식이 문법에 맞습니다
SELECT D.managerid
FROM dept D
GROUP BY D.managerid
HAVING EVERY( D.budget ) > 1000 ;

그런데 EVERY라는 것이 있는지 모르겠네요
그래서 해본것이 sum
SELECT D.managerid
FROM dept D
GROUP BY D.managerid
HAVING sum( D.budget ) > 1000 ;

walker의 이미지

SELECT D.managerid
FROM dept D
GROUP BY D.managerid
HAVING MIN(D.budget) > 1000