본문 바로가기
컴퓨터관련/MS-SQL

[MS-SQL]COUNT 기본 사용 및 응용사용(조건,중복제거)

by 빛과 어둠사이 2020. 2. 12.
728x90
반응형
SMALL

MSSQL이나 ORLCLE 등 여러 DBMS에서는

COUNT라는 함수를 제공합니다.

그러면서 조회된 데이터의 갯수를

확인하여 바로 알려주고 있습니다.


이번에는 SQL SERVER에서의

COUNT함수를 사용하는 기본적인 방법 및

응용사용법에 대해서

정리를 해 보려고 합니다.


응용사용법으로는

카운트 함수에 조건을 주거나

중복을 제거하는 방법에 대해서

정리를 해보려고 합니다.




우선, 기본적으로 데이터가 있어야 하기 때문에

임시로 테이블을 만들고

데이터를 넣었습니다.

그래서 데이터는 아래처럼 가지고 있게 하였습니다.




위처럼 데이터를 가지고 있는

test_member2 테이블을 생성하였습니다.

그러면 이제부터 count 함수 사용법에 대해서

정리를 해보도록 하겠습니다.




1. count 기본 사용법

기본 사용법은 아주 간단합니다.

예제 쿼리는 다음과 같습니다.

select count(*) from test_member2

위처럼 하게 되면 됩니다.

그러면 test_member2 테이블의

데이터의 갯수를 

리턴해 줍니다.

결과는 다음과 같습니다.



맨 위에 이미지를 보면 알겠지만,

test_member2 테이블에

데이터는 총 12개가 있기 때문에

위처럼 결과가 나오게 되는 것입니다.




2. tmp1의 값이 111인 데이터 갯수 확인하기

이번에는 약간의 응용이라고 할 수도 있는

tmp1의 값이 

111인 데이터의 

갯수에 대해서 가져오도록 하겠습니다.

많은 분들이 아래처럼 사용을 하실 것입니다.

select count(*) from test_member2
where tmp1 = '111'

위처럼 하는 것이

가장 일반적으로 사용하는 방법입니다.

위처럼 하게 되면,

WHERE절에서 tmp1의 값을 비교하여

111인 데이터만 나오게 합니다.

나오는 데이터의 갯수를 체크하는 것입니다.


그래서 결과는 아래와 같이 나오게 됩니다.


위처럼 나오게 됩니다.

tmp1의 값이 111인 데이터는

총 3개이기 때문에

위처럼 나오게 되는 것입니다.



3. count 응용하여 tmp1의 값이 111인 갯수 확인하기

이번에는 where절을 사용하지 않고,

count 함수만을 이용하여

tmp1의 값이 111인 경우의 

갯수를 체크해보도록 하겠습니다.

방법은 아래와 같습니다.

select count(case when tmp1 = '111' then 1 end ) from test_member2

위처럼 쿼리를 작성하시면 됩니다.


그러면 count 함수에서 case when문을 이용,

tmp1의 값을 확인해서

111인 데이터의 갯수에 대해서만

확인을 할 수 있습니다.


위처럼 작성하여

실행을 하면

결과는 아래와 같이 나오게 됩니다.




위처럼 똑같이 3으로 나오게 됩니다.

즉, where절을 이용했을 때와

count 함수만을 이용했을 때

결과는 동일하게 나오는 것을 확인할 수 있습니다.




4. count로 특정 조건의 값 갯수 확인하기

위의 3번을 왜 써야 하는지

잘 모르겠는 분들도 있을 수 있습니다.

그냥 2번처럼 해도 되는데

왜 굳이 3번이 필요하다고 하는건지

이해가 안되시는 분들도 있을 수 있습니다.


그러면 tmp1의 값이 111인 갯수와

222인 갯수를 확인하고 싶습니다.

count만을 이용해서

데이터 갯수를 확인하려면

쿼리를 두번 돌려야 합니다.


하지만 위 3번 쿼리를

조금 더 응용하면

한번에 조회를 할 수도 있습니다.


아래처럼 쿼리를 작성해서 한번에

111인 데이터의 갯수와

222인 데이터의 갯수를

확인해보도록 하겠습니다.

select 
count(case when tmp1 = '111' then 1 end )
, count(case when tmp1 = '222' then 1 end )
 from test_member2

위처럼 작성을 하였습니다.

case when에서 조건을 tmp1의 값으로 해서

두번 설정을 했습니다.

그리고 실행을 하면

결과는 다음과 같이 나오게 됩니다.




위처럼 tmp1의 값이

111인 데이터의 갯수와

222인 데이터의 갯수를

한번에 조회할 수 있습니다.

이렇게도 사용할 수 있고,

다른 응용도 충분히 사용이 가능합니다.





5. 중복제거

이번에는 test_member2 테이블에서

tmp1의 값이

몇 종류가 되는지

확인을 해볼 수 있도록

작성을 해보도록 하겠습니다.


select count(distinct tmp1) from test_member2 

위처럼 작성을 하면 됩니다.

그러면 tmp1의 값의 중복을 제거하고,

총 나온 데이터의 갯수를 

카운트함수로 

체크해서 알려주는 것입니다.


그래서 결과는 아래처럼 나오게 됩니다.


위처럼 tmp1의 값이

111, 222, 333

이렇게 3 종류가 있기 때문에

위처럼 3으로 나오게 되는 것입니다.





이번에는 SQL SERVER에서의 

COUNT함수 사용방법을 정리해 보았습니다

기본적인 사용방법 및

이를 응용하여 사용하는 방법도

정리를 해 보았습니다.



물론, COUNT를 사용하지 않고도

결과를 나오게 할 수도 있습니다.

방법은 한가지만 있는 것이 아닙니다.

그렇지만 여러가지 처리방법을 알면

필요에 따라서

여러가지 처리를 할 수 있습니다.

그러니 이렇게 COUNT 함수를 이용하고

응용하는 방법을 알고 있으면

추후 사용을 하실 때 필요에 따라서

사용을 할 수 있습니다.






이상으로 MSSQL에서의 COUNT 기본사용 및

응용사용법이였습니다~




728x90
반응형
LIST