sql count(*) 질문드립니다.

sql count(*) 질문드립니다.

QA

sql count(*) 질문드립니다.

본문

select count(*) as cnt from g5_ksy_0 where id='123' group by sy_date;
으로 했을때 cnt 값이 안나오는데

select count(*) as cnt from g5_ksy_0 where id='123';

으로 했을때는 cnt 값이 나옵니다.

그럼 뭐를 추가해야 첫번째 sql문에서 cnt값이 나오나요?
 

이 질문에 댓글 쓰기 :

답변 3

group by sy_date  group by 부분 추가 되면 해당 컬럼명이 선언이 되어야 구분이 되는건데요

 

group by 처리하게 되면 cnt 값이 여러개 나오게 될겁니다.

 

select sy_date,count(*) as cnt from g5_ksy_0 where id='123' group by sy_date;

 

이런식으로 선언이 되면 확인이 됩니다.

이것은 

해당 db 테이블의 필드와 레코드값을 알아야 확인이 되겠네요.

위 sql구문으로 실제 값이 0일 수 있기 때문이기도 하고요...

GROUP BY 구문은

 

특정컬럼을 기준점으로 동일한것을 묶을때(카운트 등) 사용합니다.

 

sy_date 가 일자이면 일자를 기준으로 동일일자의 레코드수를 카운트하고

다른일자를 또 카운트하게 되니

 

위의 두번째 구문의 결과가 맞습니다.

 

전체 테이블을 대상으로 하려면 goup by 를 제거하고 카운트를 해야하고

 

where 절의 내용은 추출할 대상을 필터링하는 개념이라고 보시면됩니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 116
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT