count(*)와 count(1)의 차이는 무엇일까? 어떤 차이가 있을지 알아보겠다. 더불어 count() 관련 함수 2가지를 추가로 설명하겠다.
1. 테이블 데이터 조회
테이블의 데이터를 조회하기 위해 사용하는 SQL 문법이 있다.
SELECT * FROM {TABLE}
이다. 아주 많이 사용하는 문법이다. 어쩌면 이 문법을 가장 먼저 입력해 보고 있는 사람도 있다.
테이블에 담긴 데이터 못지않게 건수가 몇개나 되는지 확인하는 작업도 굉장히 중요하다. 특히 데이터를 이관 시킨 후 건수 비교를 할 때 많이 사용하고, Paging 작업에도 많이 사용된다.
하나씩 알아보자.
2. count 함수 알아보기
그러면 그 테이블의 데이터 건수를 조회하는 문법은 무엇일까? 이것도 아주 많이 사용한다.
SELECT count(*) FROM {TABLE}
이다.
여기서 count(*) 대신 count(1)도 많이 사용한다.
SELECT count(1) FROM {TABLE}
이렇게 말이다.
count(*) 과 count(1) 둘 간의 차이가 있을까?
결론은 "없다" 이다.
처리 결과도 같고 처리 속도도 차이가 없다.
그러면 왜 이렇게 사용할 까?
그것은 개인의 취향이다. 누구는 count(*)를 사용하고 누구는 count(1)을 사용한다.
여기서 무엇을 사용하면 좋을지를 묻는다면 "count(*)"을 사용하라고 말해주고 싶다.
이유는
아주 많은 사람이 "count(*)"를 사용하기에 가독성이 좋기 때문이다.
우리의 학습 유효기간은 짧다.(아래 기사 참조)
그래서 누구나 사용하는 일반적인 표기법을 사용해야 나중에라도 이해를 하게 된다.
만약 count(1)을 사용한다면, "(1)"이 무엇을 의미하는 생각하는 단계를 거치게 된다. 그 보다는 항상 누구나 사용하는 "count(*)"가 바람직 한 것이다.
count(1) 보다는 count(*)를 사용하기를 적극 권장한다.
> count 이야기 하나더.
테이블에 저장된 데이터를 살펴보자.
숫자, 문자, 이미지, Boolean(True, False), 공백, N/A, Null 등이 있다.
여기서 완전 공백인 Null의 경우 count(*)에서는 포함이 된다.
하지만 해당 칼럼의 갯수를 세는 count({칼럼})의 경우에는 제외가 된다.
예를 들어
테이블 sales에 100개의 데이터가 있다. 칼럼은 3개가 있다. date, good, qty 이다.
칼럼 date는 100개 다 값이 있고, goods에는 null이 2개 있고 qty에는 null 값이 5개 들어있다.
이 경우 count 를 해 보자
- SELECT count(*) FROM sales; -- 100건
- SELECT count(date) FROM sales; -- 100건
- SELECT count(good) FROM sales; -- 98건
- SELECT count(qty) FROM sales; -- 95건
와 같이 나온다.
count에 직접적인 칼럼을 지정하면 그 칼럼이 가는 값 중에서 null은 제외되는 것이다.
- count(칼럼): Null 값을 제외한 건수를 출력
- count(*): Null 값을 포함한 건수를 출력
> count 이야기 한번 만 더
SQL에는 distinct 라는 문법이 있다. 중복된 값은 제외하고 유일한 값만 출력하는 문법이다.
이 distinct를 count에 적용해 보자.
count(distinct 칼럼)
예를 들면,
sales 테이블의 100건의 데이터가 있고, goods 칼럼에는 "apple, banana, orange"만 있다. 이럴때 goods에서 다루는 상품의 갯수를 알고자 한다.
SELECT count(distinct goods) FROM sales;
위와 같이 SQL을 만들면 된다.
실행시키면 3건만이 나온다. 즉 중복처리 후 유일한 값의 개수를 출력하는 것이다.
3. count(*), count(1) 정리하며
이렇게 count(*)와 count(1) 을 비교했다. 차이는 없다. 하지만 count(*)를 사용하기를 권장한다.
데이터에 null이 있을 경우 count(칼럼)은 Null 이 있는 경우 개수에서 제외하지만, count(*)는 포함하여 개수를 산정한다.
count(distinct goods)는 goods 칼럼에 담겨있는 유일한 값의 수를 출력한다.
count() 함수를 알아봤다.
SQL에서 많이 사용하는 함수이니 기억하기 바란다.
너무쉬워서 자주 사용하지 않으면 잊기 쉬운점도 기억하기 바라며 마무리 합니다.
'데이터인문학' 카테고리의 다른 글
성능을 높이는 프롬프트 워딩 - 감정프롬프트 "이거 아주 중요한 거야" (0) | 2024.02.26 |
---|---|
731부대, 마루타, 생체실험 데이터는 왜 만들었나 (3) | 2023.11.21 |
데이터인문학, 에피소드 1, "교도소 폭동 예측을 위한 데이터 분석" 배경 이야기,데이터 연결하기 (1) | 2023.11.13 |
경쟁을 부추기는 숫자들. 주가, 환율, Yes24 인터넷서점 판매지수, 보험판매건수 (1) | 2023.11.09 |
데이터 과학 욕구 단계 - 모니카 로가티, 매슬로우의 욕구 5단계 (0) | 2023.10.17 |