SELECT 상호,총액
FROM 거래내역
GROUP BY MAX(총액); 이렇게 작성하는건 왜 안되나요? WHERE절을 쓰지 않았어요 불가능한건가요?
안녕하세요 길벗수험서 운영팀입니다.
예, 불가능합니다.
group 지정시 집계함수 사용이 불가능하며(having에서나 사용이 가능합니다), 단순히
'select 상호, max(총액) from 거래내역' 과 같이 작성한다 하더라도, 상호와 max(총액)이 서로 일치하지 않아 정답에서 제시한대로 작성해주셔야 합니다.
행복한 하루되세요 :)
-
관리자2020-09-10 13:44:34
안녕하세요 길벗수험서 운영팀입니다.
예, 불가능합니다.
group 지정시 집계함수 사용이 불가능하며(having에서나 사용이 가능합니다), 단순히
'select 상호, max(총액) from 거래내역' 과 같이 작성한다 하더라도, 상호와 max(총액)이 서로 일치하지 않아 정답에서 제시한대로 작성해주셔야 합니다.
행복한 하루되세요 :)
-
관리자2020-10-05 10:26:43
안녕하세요 길벗수험서 운영팀입니다.
둘 모두 안됩니다.
위의 sql은 모든 상호들(각 그룹들)의 총액 최대값이 나올 것이고,
아래의 sql의 group by가 없는 having은 문법 오류로 실행되지 않습니다.
rollup 자체가 group by와 함께 사용되기 위해 구성된 그룹 함수이기 때문입니다.
단순히 그룹내 산술 연산을 위한 함수들과는 구분되어야 하죠.
행복한 하루되세요 :)
-
*2020-10-03 11:03:16
그러면 한가지 더 질문이 있습니다.
SELECT 상호,MAX(총액)
FROM 거래내역
GROUP BY 상호 이렇게는 되나요?
아니면 SELECT 상호, 총액
FROM 거래내역
HAVING MAX(총액) 이렇게는 되나요?
추가적으로 GROUP BY ROLLUP 이거는 되는데 왜 GROUP BY MAX는 안되는지도 궁금합니다!