Posts [프로그래머스] SQL 문제 모든 코드
Post
Cancel

[프로그래머스] SQL 문제 모든 코드

❤친 문제는 조금 신경써야할 문제를 체크했습니다.

최댓값 구하기

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59415

코드

SELECT DATETIME FROM ANIMAL_INS ORDER BY DATETIME DESC LIMIT 1

모든 레코드 조회하기

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59034

코드

SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID

역순 정렬하기

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59035

코드

SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC

아픈 동물 찾기

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59036

코드

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION = 'Sick' ORDER BY ANIMAL_ID

우유와 요거트가 담긴 장바구니

문제링크 ❤

https://programmers.co.kr/learn/courses/30/lessons/62284

코드

SELECT A.CART_ID FROM 
(SELECT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Milk') as A,
(SELECT CART_ID FROM CART_PRODUCTS WHERE NAME='Yogurt') as B 
WHERE A.CART_ID = B.CART_ID

어린 동물 찾기

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59037

코드

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION != 'Aged' ORDER BY ANIMAL_ID 

동물의 아이디와 이름

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59403

코드

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS ORDER BY ANIMAL_ID

최솟값 구하기

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59038

코드

SELECT DATETIME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1

여러 기준으로 정렬하기

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59404

코드

SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS ORDER BY NAME, DATETIME DESC

이름이 없는 동물의 아이디

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59039

코드

SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL

동물 수 구하기

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59406

코드

SELECT COUNT(ANIMAL_ID) FROM ANIMAL_INS

상위 N개 레코드

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59405

코드

SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1

이름이 있는 동물의 아이디

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59407

코드

SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL ORDER BY ANIMAL_ID

중복 제거하기

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59408

코드

SELECT COUNT(DISTINCT(NAME)) FROM ANIMAL_INS

고양이와 개는 몇 마리 있을까

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59040

코드

SELECT ANIMAL_TYPE, COUNT(ANIMAL_ID) FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE

동명 동물 수 찾기

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59041

코드

SELECT NAME, COUNT(ANIMAL_ID) FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME HAVING COUNT(ANIMAL_ID) >= 2 ORDER BY NAME

NULL 처리하기

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59410

코드

SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') as NAME, SEX_UPON_INTAKE FROM ANIMAL_INS 

입양 시각 구하기(1)

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59412

코드

SELECT HOUR(DATETIME) AS HOUR, COUNT(ANIMAL_ID) FROM ANIMAL_OUTS GROUP BY HOUR(DATETIME) HAVING HOUR >= 9 AND HOUR <= 19 ORDER BY HOUR

없어진 기록 찾기

문제링크 ❤

https://programmers.co.kr/learn/courses/30/lessons/59042

코드

SELECT A.ANIMAL_ID, A.NAME FROM 
ANIMAL_OUTS A LEFT JOIN ANIMAL_INS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL

있었데요 없었습니다

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59043

코드

SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.DATETIME > B.DATETIME 
ORDER BY A.DATETIME

입양 시각 구하기(2)

문제링크 ❤

https://programmers.co.kr/learn/courses/30/lessons/59413

코드

SET @HOUR := -1;

SELECT (@HOUR := @HOUR +1) AS HOUR, (SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @HOUR) AS COUNT FROM ANIMAL_OUTS
WHERE @HOUR < 23

풀이

  • SET 옆에 변수명과 초기값을 설정

    할 수 있습니다.

    • @가 붙은 변수는 프로시저가 종료되어도 유지된다고 생각하면 됩니다.
    • 이를 통해 값을 누적하여 0부터 23까지 표현할 수 있습니다.
  • @hour은 초기값을 -1로 설정합니다. PL/-SQL 문법에서 :=은 비교 연산자 =과 혼동을 피하기 위한의 대입 연산입니다.

  • SELECT (@hour := @hour +1) 은 @hour의 값에 1씩 증가시키면서 SELECT 문 전체를 실행하게 됩니다.

  • 이 때

    처음에 @hour 값이 -1 인데, 이 식에 의해 +1 이 되어 0

    이 저장됩니다.

    • HOUR 값이 0부터 시작할 수 있습니다.
    • WHERE @hour < 23일 때까지, @hour 값이 계속 + 1씩 증가합니다.

오랜 기간 보호한 동물(1)

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59044

코드

SELECT A.NAME, A.DATETIME FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B 
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY DATETIME
LIMIT 3

보호소에서 중성화한 동물

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59045

코드

SELECT A.ANIMAL_ID, A.ANIMAL_TYPE,  A.NAME  FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B 
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.SEX_UPON_INTAKE LIKE 'Intact%' AND (B.SEX_UPON_OUTCOME LIKE 'Neutered%' OR B.SEX_UPON_OUTCOME LIKE 'Spayed%')

풀이

LIKE 두개 이상 사용시
LIKE 조건 OR LIKE 조건 으로 써야한다.
LIKE 조건 OR 조건 은 틀림

루시와 엘라 찾기

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59046

코드

SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty') ORDER BY ANIMAL_ID

이름에 el이 들어가는 동물 찾기

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59047

코드

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE = 'Dog' ORDER BY NAME

중성화 여부 파악하기

문제링크 ❤

https://programmers.co.kr/learn/courses/30/lessons/59409

코드

SELECT ANIMAL_ID, NAME,
CASE 
    WHEN SEX_UPON_INTAKE LIKE '%Neutered%' OR SEX_UPON_INTAKE LIKE '%Spayed%' THEN 'O'
    ELSE 'X'
END AS '중성화'
FROM ANIMAL_INS

오랜 기간 보호한 동물(2)

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59411

코드

SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B 
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NOT NULL 
ORDER BY (B.DATETIME - A.DATETIME) DESC
LIMIT 2

DATETIME에서 DATE로 형 변환

문제링크

https://programmers.co.kr/learn/courses/30/lessons/59414

코드

SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS '날짜' FROM ANIMAL_INS ORDER BY ANIMAL_ID
This post is licensed under CC BY 4.0 by the author.

[프로그래머스] 외벽점검 Python (파이썬)

[Network] 대챙키와 공개키 SSL 동작방식

Loading comments from Disqus ...