본문 바로가기

SQL/MS-SQL

CNT 중복검색 사용예

기본적으로 SELECT COUNT(*) CNT 여기서 AS가 생략되어서 사용된것입니다.

=>   SELECT COUNT(*)  AS CNT  

 

이것을 CNT 를 제외시키고 출력을 하면

 

SELECT COUNT(*)  ,  ....


열이름 없음

===========

3

4

....

 

이런식으로 나오는데 COUNT(*) 는 컬럼명이 지정이 안되게 됩니다.

이것이 좀 보기 싫어서 컬럼에 이름을 넣어 주는것이고요

SELECT COUNT(*) AS CNT 이것이 정석 입니다 하지만 AS는 생략이 가능합니다.

SELECT COUNT(*) CNT 하시면

 

SELECT COUNT(*)  AS CNT , ....

 

CNT

=====

3

4

...

이런식으로 나옵니다.

 

ORDER BY 에서 CNT 를 사용하기 위해서 컬럼명을 붙여준것이고요..

 

========================추가내용========

COUNT(*)는 갯수를 세어주는 역할을 합니다.


예)비슷한 테이블을 하나 만들어보겠습니다.

 

TABLE A

 

TESTA

====

AAA1

AAA2

AAA3

BBB1

BBB2

CCC1

CCC2

 

이렇게 있다고 합시다.

 

님쿼리와 비슷하게 만들어보겠습니다.AAA2

SELECT SUBSTRING(TESTA,1,3)  TESTA,COUNT(*) CNT

FROM    TABLEA

GROUP  BY SUBSTRING(TESTA,1,3)

 

이런식으로 해주시면

결과는

 

TESTA    CNT

============

AAA        3

BBB          2

CCC         2

 

이런식으로 나옵니다.

 

GROUP BY 로 묶어주는 작업을 할 때

예) AAA1  ,  AAA2 , AAA3 ->모두 AAA로 묶여서 한개만 출력..

 

몇개의 필드가 묶였는지 갯수를 세어주는

역할을 한다고 생각하시면 됩니다...

 

GROUP BY substr(a.sid,1,10), substr(nvl(b.program,machine),1,30)  에 의해서

 

substr(a.sid,1,10), substr(nvl(b.program,machine),1,30) 로 묶어주어서

출력해주면서 몇개의 필드가 증복되었는지 CNT에서 출력해줍니다.

출처: 네이버지식in