* 특이점이 생긴 문제만 올리기
6. 동명 동물 수 찾기
SELECT NAME, COUNT(*) FROM ANIMAL_INS
WHERE NAME IS NOT NULL GROUP BY NAME
HAVING COUNT(NAME) >1 ORDER BY NAME
HAVING COUNT()는 >n 회보다 중복이 된 데이터 값을 찾는 함수이다.
10. 어린 동물 찾기
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
WHERE NOT INTAKE_CONDITION = 'Aged'
IS NOT NULL을 계속 사용하다 보니 IS NOT 'Aged' 라고 작성 했었음.
11. 여러 기준으로 정렬하기 ☆
SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS
ORDER BY NAME ASC, DATETIME DESC
우선 문제 이해를 잘 하지 못함. 이름 순 후 시간순으로 하는것을 어떻게 해야하는지 이해하지 못하고 힌트를 보고 알음
재 풀이 요망.
12. 이름에 EL이 들어가는 동물 찾기
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE = 'DOG'
ORDER BY NAME
우선 LIKE의 존재를 잊음 NAME = '%EL%'이라는 함수를 적음
그 후에 개를 찾는다는 지문을 간과하여 ANIMAL_TYPE = 'DOG'을 제외시킴.
13. 나이 정보가 없는 회원 수 구하기
SELECT COUNT(*) AS USERS FROM USER_INFO
WHERE AGE IS NULL
COUNT(*) 함수에서 COUNT(AGE)을 사용 > 안되는 이유는 잘 모르겠음
>COUNT(AGE) 는 AGE 행에서 NULL값이 아닌 것을 찾고
>COUNT(*) 은 반대로 NULL값을 찾음
15. NULL 처리하기
SELECT ANIMAL_TYPE, IFNULL(NAME,"No name"),
SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID
IFNULL(컬럼명,"STRING") 을 이용하여서 NULL을 변환 시킬 수 있다.
16. 경기도에 위치한 식품창고 목록 출력하기
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS,
IFNULL(FREEZER_YN,"N") FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '%경기%'
ORDER BY WAREHOUSE_ID ASC;
ORDER BY 를 오름순으로 해야하는데 ASC 대신 DESC응 사용함.
17. DATETIME에서 DATE로 형 변형
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,'%Y-%m-%d') AS 날짜 FROM ANIMAL_INS
ORDER BY ANIMAL_ID
DATE_FORMAT(컬럼,'형식') 으로 사용되는 함수이다. 이때 형식에는 대,소문자에 따른 변화가 있는데,
%Y = 2024 %y= 24
%M = SEPTEMBER %m = 09
%D = 13th %d = 13
인 형식이다.
'Daily 코드카타 > SQL' 카테고리의 다른 글
코딩테스트 SQL 코드 카타 2024-09-23 (0) | 2024.09.23 |
---|---|
코딩테스트 SQL 코드 카타 2024.09.20 (0) | 2024.09.20 |
코딩테스트 SQL 코드카타 2024.09.19 (0) | 2024.09.19 |
코딩테스트 SQL 코드 카타 2024.09.17 (1) | 2024.09.17 |
코딩테스트 SQL 코드 카타 2024.09.16 (0) | 2024.09.16 |