본문 바로가기

프로그래밍 언어/SQL

[MySQL] 행 개수 구하기(COUNT), 중복 제거하기(DISTINCT)

2023-04-07 TIL 20강 행 개수 구하기 - COUNT

 

SELECT COUNT(*) FROM [테이블명] : 행 개수 구하기

  • 집계함수는 집합으로부터 하나의 값을 반환한다
  • *을 인수로 사용할 수 있는 것은 COUNT 함수뿐이다
SELECT COUNT(*) FROM sample51;

 

  • WHERE구로 조건을 지정하면 테이블 전체가 아닌, 검색된 행이 COUNT 로 넘겨진다
SELECT COUNT(*) FROM sample51 WHERE name = 'A';

 

 

COUNT는 NULL 값을 무시한다

  • 특정 열을 선택하여 COUNT할 경우 null값은 무시한다
  • COUNT(*)의 경우 모든 열의 행수를 카운트하기 때문에 NULL값이 있어도 해당 정보가 무시되지 않는다
SELECT COUNT(no), COUNT(name) FROM sample51;

 

 

DISTINCT : 중복 제거하기

  • DISTINCT를 지정하면 중복된 데이터를 제외한 결과를 반환한다
  • DISTINCT가 아닌 ALL을 지정하면, 중복 유무와 관계없이 문자 그대로 모든 행을 반환한다
  • 생략할 경우 ALL로 간주된다
SELECT ALL name FROM sample51;

ALL을 사용

 

SELECT DISTINCT name FROM sample51;

DISTINCT를 사용

 

DISTINCT와 COUNT를 함께 사용하기

  • DISTINCT를 이용해 집합에서 중복을 제거한 뒤 COUNT로 개수를 구한다
SELECT COUNT(ALL name), COUNT(DISTINCT name) FROM sample51;