안녕하세요 쿼리 조건문에 BETWEEN절에서 예시로
WHERE col_num BETWEEN MIN(col_num) AND MAX(col_num) 라는 조건문을 걸면
ORA-00934: 그룹 함수는 허가되지 않습니다. 라는 오류메시지가 나오는데
오류 메시지가 나오는 이유가 MIN(col_num)과 MA(col_num) 사이에 값이 1개가 아니여서 저런 오류가 나오는거일까요?
WHERE 절은 원본에 대한 조건이고
그룹핑 결과에 대한 조건은 HAVING 절 입니다.
WHERE 절에 그룹결과를 조건으로 줄 수 없습니다.
답변 감사드립니다. 마농님
select col_num
from dual
where col_num BETWEEN MIN(col_num) AND MAX(col_num)
쿼리는 그러면 성립되지 않는다는 말씀이신건가요?
네. 안됩니다.
필요 시 서브쿼리로 바꾸시면 됩니다.
select *
from table_a
where col_num between (select min(col_num) from table_b)
and (select max(col_num) from table_b);
또는
select a.* from table_a a , (select min(col_num) min_data, max(col_num) max_data from table_b) b where a.col_num between b.min_data and b.max_data;
min 에서 max면 전부다 아닌가요??
굳이 where 조건을 쓸 이유가 없는데요
엇! 그러네요. ㅎㅎ