시나공 IT
험에
오는 것만
부한다!

통합검색

1:1 질문하기

제목 기출문제 155p
자격증 정보처리 기사 실기
도서/쪽 페이지 2024 시나공 퀵이지 정보처리기사 실기 단기완성 / 155쪽
등록일 2024-04-16 조회 39
작성자 김*수

정답:

 

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(*)로 어떻게 가능한 거죠?

 

교재에서도 그룹바이 설명은 ”특정 속성을 기준으로 그룹화하여 검색할 때 사용한다. 일반적으로 그룹바이 절은 그룹 함 수와 함께 사용됨“ 이라 돼있습니다.

검색 조건으로도 사용된다고는 안 돼 있는데 이해가 안 갑니다..

첨부파일
  • 첨부파일 없음
제목 답변입니다.
등록일 2024-04-17

안녕하세요 길벗수험서 운영팀입니다.

 

해당 문제의 경우 <학생> 테이블에서 학과별 튜플의 개수를 검색하는 문제입니다.

 

회원님께서 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 등이 있습니다

 

 

열심히 연습하셔서 합격하시길 기원하겠습니다. 

 

행복한 하루되세요 :)

첨부파일
  • 첨부파일 없음