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 기본사용 및
응용사용법이였습니다~
'컴퓨터관련 > MS-SQL' 카테고리의 다른 글
MS-SQL에서 쿼리 이력 조회하기 (6) | 2020.02.26 |
---|---|
[MS-SQL]에러코드로 에러내용 가져오기 (0) | 2020.02.14 |
[MS-SQL]MERGE로 다중조건 UPDATE,INSERT,DELETE 하기 (0) | 2020.02.07 |
[MS-SQL]MERGE(머지)문으로 INSERT/UPDATE 한번에 하기 (0) | 2020.01.29 |
[MS-SQL]Korean_Wansung_CS_AS 과(와) Korean_Wansung_CI_AS 에러 발생시 (0) | 2019.12.23 |