기본적으로 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