웹 프로그래밍/SQL

[sql] 프로그래머스 마지막 string, date 풀기

mcdn 2021. 9. 15. 14:54
반응형

 

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

 

코딩테스트 연습 - 루시와 엘라 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

-- 코드를 입력하세요
SELECT animal_id, name, sex_upon_intake
FROM animal_ins
WHERE name in ('Lucy', "Ella", "Pickle", "Rogan", "Sabrina", "Mitty")
ORDER BY animal_id

중괄호로 썼다가 오류 났었음 

 

sql에서는 리스트 같은 형식도 () 이다 

 

 

 

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

 

코딩테스트 연습 - 이름에 el이 들어가는 동물 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

-- 코드를 입력하세요
SELECT animal_id, name
FROM animal_ins
WHERE name like "%el%" and animal_type = 'Dog'
ORDER BY name

지문을 잘 읽어야 하는 문제 

<할머니가 키우던 개!!!>

이므로 type= 'Dog'도 확인해야한다 

 

 

 

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

 

코딩테스트 연습 - 중성화 여부 파악하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

-- 코드를 입력하세요
SELECT animal_id, name, IF(INSTR(sex_upon_intake, 'Intact') > 0, 'X', 'O') as 중성화
FROM animal_ins
ORDER BY animal_id


# SELECT ANIMAL_ID, NAME, IF(INSTR(SEX_UPON_INTAKE, 'Intact') > 0, 'X', 'O') AS 중성화
# FROM ANIMAL_INS
# ORDER BY ANIMAL_ID;

 

참고한 모범코드 

https://programmers.co.kr/questions/20417

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

sql에서 if문 쓰는 법이다 

instr은 해당 문자열에 이게 들어가있는지.. 

 

열을 추가하는 법은 이렇게 하나봄 

 

또 다른 모범코드 

SELECT
    animal_id,
    name,
    case when sex_upon_intake like '%Neutered%' or sex_upon_intake like '%Spayed%' 
    then 'O' else 'X' 
    end 중성화
from 
animal_ins
order by animal_id
;

case when을 써서 하는.. 신기!

case when 

then else 

end 

 

https://121202.tistory.com/46

 

[MSSQL] CASE 문 . 조건에 따라 값 정하기 ! CASE WHEN THEN

조건에 따라서 값을 지정해 주는 CASE문에 대해서 알아보겠습니다~ CASE 문의 형식은  CASE 컬럼  WHEN 조건1 THEN 값1 WHEN 조건2 THEN 값2 ELSE 값3 END 입니다. 컬럼이 조건1 일때는 값1 을 조건2일때는..

121202.tistory.com

 

참고 블로그 

 

 

 

 

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

 

코딩테스트 연습 - 오랜 기간 보호한 동물(2)

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

-- 코드를 입력하세요
SELECT A.animal_id, A.name
FROM animal_outs as A left join animal_ins as B 
on A.animal_id = B.animal_id
ORDER BY A.datetime - B.datetime desc
LIMIT 2

 

 

animal_id가 unique하고 

A, B 둘다 겹치는 경우니까 left join 말고 join도 가능하다 (어차피 교집합을 보고 싶으니까)

A.animal_id is not null 도 필요가 없다 

 

desc을 안 붙여서 한 번 틀렸었음 

오랜기간이니까 값이 큰게 먼저 오도록 순서를 바꿔야 한다 

 

 

 

 

 

 

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

 

코딩테스트 연습 - DATETIME에서 DATE로 형 변환

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

-- 코드를 입력하세요
SELECT animal_id, name, date_format(datetime, "%Y-%m-%d")
FROM animal_ins
ORDER BY animal_id

date_format 함수를 사용해서 datetime에서 필요한 정보만 뺴갈 수 있다 

그리고 %D는 1st 2nd 3rd 이렇게 프린트함 ㅋㅋㅋ

반응형