SQL ) LV2. 고양이와 개는 몇 마리 있을까
접근법
- 고양이과 개가 각각 몇마리인지 조회해야 하므로, ANIMAL_TYPE으로 그룹화 후, 집계함수 COUNT로 마리 수를 출력했다.
코드
SELECT ANIMAL_TYPE, COUNT(*) AS count FROM ANIMAL_INS
WHERE ANIMAL_TYPE IN ('Cat', 'Dog') GROUP BY ANIMAL_TYPE ORDER BY 1;
SQL ) LV2. 동명 동물 수 찾기
접근법
- 이름 값이 NULL이 아닌 데이터 중에서, 이름이 두 번이상 중복으로 쓰인 데이터를 조회해야 하므로,
- 먼저 WHERE 절에서 NAME이 NULL이 아닌 데이터로 필터링 후, NAME 기준 그룹화 한 다음, HAVING절에서 튜플 행의 COUNT값이 2이상인 경우만 조회했다.
코드
SELECT NAME, COUNT(*) AS COUNT FROM ANIMAL_INS WHERE NAME IS NOT NULL
GROUP BY NAME HAVING COUNT(*) >= 2 ORDER BY 1;
SQL ) LV2. 루시와 엘라 찾기
접근법
- NAME칼럼 값에서 특정 값만 조회하므로 IN 연산자 사용
코드
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Sabrina', 'Mitty');
SQL ) LV2. 이름에 el이 들어가는 동물 찾기
접근법
- 이름에 EL이 포함된 동물 들 중 개만 조회해야 하므로, ANIMAL_TYPE이 Dog이면서, LIKE연산자로 NAME에 EL이 들어가는 경우 조회
코드
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE = 'Dog' ORDER BY 2;
SQL ) LV2. 동물 수 구하기
코드
SELECT COUNT(*) AS count FROM ANIMAL_INS;
SQL ) LV2. 중복 제거하기
접근법
- 이름의 수를 출력해야하므로,
- NAME값이 NULL이 아니면서, 중복된 이름을 제거해야하므로 WHERE절에서 ISNOTNULL로 NULL값 필터링 후, COUNT 집계함수를 쓰면서, NAME 칼럼 값에 DISTINCT 키워드를 붙여 중복을 제거하면서 집계했다.
코드
SELECT COUNT(DISTINCT NAME) AS count FROM ANIMAL_INS WHERE NAME IS NOT NULL;
'📕 SQL > MySQL' 카테고리의 다른 글
📕[SQL] 24.09.01 SQL (0) | 2024.09.01 |
---|---|
📕[SQL] 24.08.30 SQL (0) | 2024.08.30 |
📕[SQL] 24.08.28 SQL (1) | 2024.08.29 |
📕[SQL] 24.08.17 SQL (0) | 2024.08.17 |
📕[SQL] 24.08.14 SQL (0) | 2024.08.14 |