안녕하세요 길벗수험서 운영팀입니다.
질문을 이해하지 못했습니다.
group by 없이 그룹함수는 쓰는 경우 테이블 전체에 대한 함수의 결과가 나옵니다.
group by로 묶인 경우 해당 열 외의 다른 열은 조회 자체가 불가능합니다. (이름 변경 등의 작업이 모두 불가능)
만약 의도와 다른 설명이었다면 생각하신 sql문을 직접 작성하여 재질문 주세요.
행복한 하루되세요 :)
-
관리자2019-10-07 17:22:50
안녕하세요 길벗수험서 운영팀입니다.
질문을 이해하지 못했습니다.
group by 없이 그룹함수는 쓰는 경우 테이블 전체에 대한 함수의 결과가 나옵니다.
group by로 묶인 경우 해당 열 외의 다른 열은 조회 자체가 불가능합니다. (이름 변경 등의 작업이 모두 불가능)
만약 의도와 다른 설명이었다면 생각하신 sql문을 직접 작성하여 재질문 주세요.
행복한 하루되세요 :)
-
관리자2019-10-08 17:07:20
안녕하세요 길벗수험서 운영팀입니다.
예, 추가하지 않아도 됩니다. 보통 그룹의 대상이 되는 속성이 그룹함수로 사용되는 경우가 거의 없습니다.
문제에서는 "접수종류" 별로 그룹을 하라고 명시하고 있습니다.
또한 제가 먼저 답변드린 것중에 그룹으로 묶인 열 외에는 조회가 안된다고 한 것은, 일반적인 조회가 안되는 것일뿐 그룹함수를 통한 결과는 출력이 가능합니다.
예를 들어
select a, b from Table group by a - 이건 안됩니다. a 속성으로 묶었는데 묶이지 않은 b 속성을 조회하는 것은 불가능합니다. 그룹으로 묶인 a의 각 튜플에는 여러개의 b 값이 존재하기 때문입니다.
'접수종류'로 그룹을 묶었을 때, 고객번호는 '인터넷'이라는 접수종류에 3178, 3185, 3184, 3181이 존재합니다. 이것을 하나의 튜플로 표현하는 것은 불가능하죠.
select a, avg(b) from Table group by a - 가능합니다. 그룹으로 묶인 a에 여러개의 b 속성을 연산하여 하나의 결과만을 출력하기 때문입니다.
행복한 하루되세요 :)
-
*2019-10-08 00:35:46
혹시 책에없는 문제로 질문해도 될까요?
된다면..일단 첨부한 문제에서 접수종류별로 결과를 표시한다그래서 group by함수를 사용하였습니다
그리고 sql문의 결과에서 나이의 평균도 보여주라 그래서 select문에 avg(나이)를 썼는데
select문에 groupby에 쓰지않은 열이있으면 안된다그래서 group by에 나이를 써줬습니다!
근데 답을 보니까 group가 없더라구요! ㅜㅜ
그룹함수들을 사용하면(sum count avg등등) group by에 추가하지 않아도 되는건가요?