SELECT
모든 레코드 조회하기(Lv1)
문제 설명
문제
동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.
풀이
SELECT로 모든 정보를 조회
ORDER BY에서 ANIMAL_ID 순으로 오름차순 정렬
SELECT *
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
역순 정렬하기(Lv1)
문제 설명
문제
동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.
풀이
SELECT로 NAME, DATETIME을 조회
ORDER BY에서 ANIMAL_ID 순으로 내림차순 정렬
SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC;
GROUP BY
★언어별 개발자 분류하기 (Lv4)
문제 설명
문제
풀이
WITH에서 GRADE를 만들어서 단계별 조건을 입력
※처음에는 한 쿼리 안에 case when 구문도 넣었지만, where 구문의 grade는 select절의 case when 구문이 있기 때문에 작동하지 않아서 with 구문으로 빼는 것이 올바르다고 판단함
※ A 등급의 조건에서 Front End와 Python의 조건을 처음에는 같은 where 구문에 넣어서 틀렸었음! 하지만 python은 back end이므로 이렇게 되면 모두 0이 나옴 → 지금의 구문과 같이 따로 따로 만들어서 AND로 이어주는 것이 올바르다!!
SELECT에서 GRADE, ID, EMAIL을 조회
WHERE에서 GRADE가 NULL이 아니다라고 조건 추가
ORDER BY에서 GRADE, ID를 오름차순 정렬
WITH GRADES AS (
SELECT ID, EMAIL,
CASE
WHEN SKILL_CODE & (SELECT SUM(CODE)
FROM SKILLCODES
WHERE CATEGORY = 'Front End')
AND SKILL_CODE & (SELECT SUM(CODE)
FROM SKILLCODES
WHERE NAME = 'Python') THEN 'A'
WHEN SKILL_CODE & (SELECT SUM(CODE)
FROM SKILLCODES
WHERE NAME='C#') THEN 'B'
WHEN SKILL_CODE & (SELECT SUM(CODE)
FROM SKILLCODES
WHERE CATEGORY='Front End') THEN 'C'
END AS GRADE
FROM DEVELOPERS
)
SELECT GRADE, ID, EMAIL
FROM GRADES
WHERE GRADE IS NOT NULL
ORDER BY GRADE, ID;
String, Date
이름에 el이 들어가는 동물 찾기(Lv2)
문제 설명
문제
풀이
SELECT에서 ANIMAL_ID, NAME을 조회
WHERE에서 ANIMAL_TYPE은 개로, NAME에 lower 함수를 써서 'el'이 포함된 것으로만 제한
ORDER BY에서 NAME 오름차순 정렬
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE ANIMAL_TYPE = 'Dog'
AND LOWER(NAME) LIKE '%el%'
ORDER BY NAME;
'SQL > 프로그래머스' 카테고리의 다른 글
프로그래머스 | SQL 스터디 14 (Union, Union all) (3) | 2024.09.16 |
---|---|
프로그래머스 | SQL 스터디 13 (0) | 2024.09.15 |
프로그래머스 | SQL 스터디 11 (비트연산자 &) (1) | 2024.09.11 |
프로그래머스 | SQL 스터디 10 (2) | 2024.09.10 |
프로그래머스 | JOIN - 없어진 기록 찾기 (+JOIN정리) (0) | 2024.09.10 |