정답:
S.E.L.E.C.T 학.과, C.O.U.N.T(*) A.S 학.과.별 튜.플 수 F.R.O.M 학.생 G.R.O.U.P B.Y 학.과;
인데요.
이.해.가 안 가.는 것.이 C.O.U.N.T.(*).가 모.든 레.코.드.를 세.는 함.수.인.데.요.
여.기.서.는 W.H.E.R.E. 절.을 .써.서 검.색. .조.건.도. .따.로 .설.정.을. 안 .해.줬.는.데.요.
학과별로 개수를 세는 게 COUNT(*)로 어떻게 가능한 거죠?
교재에서도 그룹바이 설명은 ”특정 속성을 기준으로 그룹화하여 검색할 때 사용한다. 일반적으로 그룹바이 절은 그룹 함 수와 함께 사용됨“ 이라 돼있습니다.
검색 조건으로도 사용된다고는 안 돼 있는데 이해가 안 갑니다..
안녕하세요 길벗수험서 운영팀입니다.
해당 문제의 경우 <학생> 테이블에서 학과별 튜플의 개수를 검색하는 문제입니다.
회원님께서 where절을 언급하셨는데 where절을 이용하여 학과별로 튜플들을 묶어줄수가 없습니다.
때문에 문제에서 제시한 group by를 이용하여 학과별로 튜플들을 묶어주는것이고
학과별 튜플들의 개수를 구하기 위해 count(*)를 이용한것입니다.
select 문의 실행순서는 from → where → group by → having → select → order by 순입니다.
SELECT 학과, COUNT(*) AS 학과별튜플수 FROM 학생 GROUP BY 학과;
이 코드에서 "from 학생"이 먼저 실행이 되어 <학생> 테이블을 대상으로 검색을 할것이고
where 은 따로 없으니 group by가 실행됩니다.
"group by 학과"라고 되어있으니 <학생> 테이블의 "학과"를 기준으로 그룹을 지정하고
having 이 따로 없으니 select가 실행됩니다.
"SELECT 학과, COUNT(*) AS 학과별튜플수" 라고 되어있으니 "학과"와 count(*)로 개수를 구한후 개수를 "학과별튜플수" 필드명으로 표시를 합니다.
GROUP BY절에 지정된 그룹별로 속성의 값을 집계할 때 사용하는 함수에는
count, sum, avg, max, min, stddev, variance, pollup, cube 등이 있습니다
열심히 연습하셔서 합격하시길 기원하겠습니다.
행복한 하루되세요 :)
-
관리자2024-04-17 12:12:07
안녕하세요 길벗수험서 운영팀입니다.
해당 문제의 경우 <학생> 테이블에서 학과별 튜플의 개수를 검색하는 문제입니다.
회원님께서 where절을 언급하셨는데 where절을 이용하여 학과별로 튜플들을 묶어줄수가 없습니다.
때문에 문제에서 제시한 group by를 이용하여 학과별로 튜플들을 묶어주는것이고
학과별 튜플들의 개수를 구하기 위해 count(*)를 이용한것입니다.
select 문의 실행순서는 from → where → group by → having → select → order by 순입니다.
SELECT 학과, COUNT(*) AS 학과별튜플수 FROM 학생 GROUP BY 학과;
이 코드에서 "from 학생"이 먼저 실행이 되어 <학생> 테이블을 대상으로 검색을 할것이고
where 은 따로 없으니 group by가 실행됩니다.
"group by 학과"라고 되어있으니 <학생> 테이블의 "학과"를 기준으로 그룹을 지정하고
having 이 따로 없으니 select가 실행됩니다.
"SELECT 학과, COUNT(*) AS 학과별튜플수" 라고 되어있으니 "학과"와 count(*)로 개수를 구한후 개수를 "학과별튜플수" 필드명으로 표시를 합니다.
GROUP BY절에 지정된 그룹별로 속성의 값을 집계할 때 사용하는 함수에는
count, sum, avg, max, min, stddev, variance, pollup, cube 등이 있습니다
열심히 연습하셔서 합격하시길 기원하겠습니다.
행복한 하루되세요 :)