다음 SQL 중 실행 시 오류가 발생하는 것은?[진료]진료번호진료과진료… | [SQLD] SQL 개발자 기출유형 모의고사 6회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 6회
다음 SQL 중 실행 시 오류가 발생하는 것은?

[진료]

진료번호진료과진료비
1내과12000
2외과30000
3내과8000
4안과(null)
5외과15000
㉠ SELECT COUNT(*), MAX(진료비)
     FROM 진료;

㉡ SELECT 진료과, SUM(진료비)
     FROM 진료;

㉢ SELECT '전체' AS 구분, SUM(진료비)
     FROM 진료;

㉣ SELECT SUM(진료비) / COUNT(*)
     FROM 진료
    WHERE 진료비 > 0;
1
㉡
2
㉢
3
㉠
4
㉣
해설

GROUP BY 가 없으면 테이블 전체가 하나의 그룹이 되어 결과가 1행이므로, 행마다 값이 다른 진료과를 집계 함수 없이 함께 SELECT 하면 오류가 난다.

문자 상수처럼 그룹 안에서 값이 하나로 정해지는 식은 집계 함수와 함께 써도 된다.

  • ㉠은 전체 행 수와 최댓값을 1행으로 돌려준다.
  • ㉢의 '전체' 는 상수라 집계 결과와 함께 출력된다.
  • ㉣은 WHERE 로 거른 행에 대해 집계끼리 나눈 식이라 정상이다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 6회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기