정답이 SEELCT 이름 FROM 자격증 GROUP BY 이름 HAVING COUNT(*)>=2; 인데요
COUNT(*)부분에 COUNT(이름) 이라 적으면 결과가 다른가요?
안녕하세요 길벗수험서 운영팀입니다.
아뇨 같습니다.
count의 인수에 *이 들어간 것은 검색 결과의 '튜플 수'를 반환하며,
속성이 들어간 것은 검색 결과에서 해당 속성의 '유효 값의 개수'를 반환합니다.
예를 들어 127쪽의 <사원> 테이블에서 select count(*) from 사원; 을 사용하게 되면, 전체 튜플 수인
8이 반환됩니다.
반면 select count(주소) from 사원; 을 사용하게 되면 '주소' 속성에서의 유효 값의 개수인 7이 반환되게 되죠.
즉, 아무 값도 입력되지 않은 NULL이 '주소' 속성에 있기 때문에 해당 튜플을 카운트하지 않은 것이죠.
다만 문의하신 문제에서는 모든 튜플의 '이름' 속성에 유효 값이 들어가 있으므로 count(*)과 다를바가 없습니다.
행복한 하루되세요 :)
-
관리자2021-07-07 10:36:18
안녕하세요 길벗수험서 운영팀입니다.
아뇨 같습니다.
count의 인수에 *이 들어간 것은 검색 결과의 '튜플 수'를 반환하며,
속성이 들어간 것은 검색 결과에서 해당 속성의 '유효 값의 개수'를 반환합니다.
예를 들어 127쪽의 <사원> 테이블에서 select count(*) from 사원; 을 사용하게 되면, 전체 튜플 수인
8이 반환됩니다.
반면 select count(주소) from 사원; 을 사용하게 되면 '주소' 속성에서의 유효 값의 개수인 7이 반환되게 되죠.
즉, 아무 값도 입력되지 않은 NULL이 '주소' 속성에 있기 때문에 해당 튜플을 카운트하지 않은 것이죠.
다만 문의하신 문제에서는 모든 튜플의 '이름' 속성에 유효 값이 들어가 있으므로 count(*)과 다를바가 없습니다.
행복한 하루되세요 :)