-
MySQL 새로 알게 된 쿼리CS지식/데이터베이스 2021. 12. 21. 21:08
1. DISTINCT의 위치는 중요하다.
https://programmers.co.kr/learn/courses/30/lessons/59408
이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로
처음 내가 생각한 쿼리
-> SELECT DISTINCT COUNT(NAME) FROM ANIMAL_INS WHERE NAME is not NULL;
DISTINCT의 위치 중요성을 모르고 썼다..
그냥 얇팍한 SQL에 대한 지식으로 머리를 들이밀었더니 거부 당했고 새롭게 알게 된 DISTINCT 위치의 중요성으로 다시 쿼리 작성
SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS;
DISTINCT를 COUNT 안에 써주면 해당 컬럼의 값에 대해서만 중복제거를 해준다..
그리고 COUNT는 애초에 NULL을 카운팅하지 않기 때문에 WHERE NAME is not NULL은 제거해줘도 된다.
2. NULL 처리하기
https://programmers.co.kr/learn/courses/30/lessons/59410
NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시
모르겠다... mysql을 프로젝트 때 쓰면서 쓸 일이 없어서 알 수 있었던 일이 없었다.
그래서 바로 구글링을 했고 오늘 하나 더 지식을 쌓았다.
IFNULL(컬럼명, NULL 시 값);
<참고 자료>
https://extbrain.tistory.com/56
https://extbrain.tistory.com/60
https://wakestand.tistory.com/44
'CS지식 > 데이터베이스' 카테고리의 다른 글
[PostgreSQL] Date/Time Types (0) 2022.08.06 기초가 튼튼한 데이터베이스(저자 이종만) 후기 (0) 2021.06.22 OLAP란 무엇인가? (기초가 튼튼한 데이터베이스 완독!!) (0) 2021.06.22 데이터 웨어하우스란 무엇인가 (0) 2021.06.19 트랜잭션이란 무엇인가? (0) 2021.06.16