대출 테이블을 대상으로 GROUP BY 절 없이 실행할 때 오류가 발생… | [SQLD] SQL 개발자 기출유형 모의고사 5회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 5회
대출 테이블을 대상으로 GROUP BY 절 없이 실행할 때 오류가 발생하는 SQL은?
1
SELECT '합계' AS 구분, SUM(연체료) FROM 대출;
2
SELECT 회원번호, COUNT(*) AS 건수 FROM 대출;
3
SELECT MAX(대출일) - MIN(대출일) FROM 대출;
4
SELECT COUNT(*), MAX(대출일) AS 최근 FROM 대출;
해설
GROUP BY 가 없으면 테이블 전체가 하나의 그룹이 되어 결과가 1행이므로, 행마다 값이 다른 회원번호를 집계 없이 함께 SELECT 하면 오류가 난다.
SELECT 절에는 집계 함수, 상수, 집계 함수끼리의 연산만 둘 수 있다.
- 집계 함수만 나열한 SQL 은 전체 1행으로 정상 실행된다.
- 문자 상수는 그룹마다 같은 값이라 집계와 함께 써도 된다.
- MAX 와 MIN 의 차처럼 집계 결과끼리의 연산은 허용된다.
오류나 개정된 내용이 보이면 알려주세요