일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 다시풀어보기
- easy
- 프로그래머스
- lv.4
- 시계열데이터분석
- MySQL
- 파이썬을활용한시계열데이터분석
- recursive
- 직장인인강
- HACKER_RANK
- solvesql
- group by
- Hard
- 해커랭크
- 어려웠음
- row_number
- 패스트캠퍼스
- 직장인자기계발
- Hackerrank
- join
- RANK
- 프리미엄
- 패캠챌린지
- LeetCode
- SQL
- 파이썬을활용한시계열데이터분석AtoZ올인원패키지Online
- meidum
- 패스트캠퍼스후기
- SELF-JOIN
- medium
- Today
- Total
목록SQL/프로그래머스 (27)
~고군분투 인생살이~
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 조건 - FOOD_PRODUCT 테이블에서 식품 분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 출력하시오- 식품 분류는 '과자','국','김치','식용유'인 경우로 제한하시오 - 결과는 식품 가격을 기준으로 내림차순 정렬하시오 문제 풀이 temp 테이블 - 식품 분류를 필터링 (과자,국,김치,식용유만 포함되게) - 한 카테고리 내에서 동일한 max_price를 가지게 되는 product가 있고, 이 또한 고려해서 모두 출력해야 한다는 상황을 고려하여 rank() 함수를 이용해서 각 카테고리의 p..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. NAMETYPENULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 조건 데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다. 2. 문제 풀이 더보기 문제를 보면 결국 우리가 주목해야 할 데이터는 우유와 요거트의 구매 여부이다.그래서 temp 테이블을 생성해서 name에 'milk' or 'yogurt'값을 가진 cart_id와 name만을 출력한다 이렇게 정리된 tem..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 -- 들어올 당시에는 중성화 안되고, 나갈때는 중성화 된 with temp as( select * from animal_ins where sex_upon_intake like 'intact%') -- 중성화 안된 애들로 필터링한 temp 테이블 select t.animal_id, t.animal_type, t.name from temp t inner join animal_outs a on t.animal_id = a.animal_id -- 들어온 후 나간 애들만 찾는다 해서 inner join wh..

1. 문제 설명 2. 문제 풀이 해당 문제는 MySQL의 날짜 포멧 형식을 이용하면 간단하게 풀이 가능하다. %Y 4글자 년 %T hh:mm:ss %y 2글자 년 %r hh:mm:ss AM/PM %m 2글자 월(ex : 01, 12) %M %c 월(ex: 1, 12) %b 월(영문 축약 Mar) %d 2글자 일(01, 30) %W 일(영문 전체 Monday) %e 일(ex: 1, 30) %a 일(영문 축양 Mon) %H 24시간 시간 %i 분 %l 12시간 시간 %S 초 3. 정답 SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,'%Y-%m-%d') "날짜" FROM ANIMAL_INS ORDER BY 1;

1. 문제 설명 2. 문제 풀이 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하자. 1. 보호 기간이 가장 길었던 동물 => INS 테이블과 OUTS 테이블에 있는 DATETIME 컬럼이 필요하다.=> INNER JOIN을 해야함 2. 두 마리의 아이디와 이름을 조회 => LIMIT 2 3. 보호 기간이 긴 순으로 조회 => ORDER BY (OUTS.DATETIME - INS.DATETIME )DESC ORDER BY에 저렇게도 되는구나..!! 3. 정답 SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_INS A INNER JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID ORDER BY (B.DATETIME-A.DATETIME)..

1. 문제 설명 2. 문제 풀이 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 있으면 중성화가 된 상태중성화가 되어 있다면, 'O', 아니라면 'X'라고 표시하기. 중성화를 뜻하는 단어를 찾기 위해 LIKE 를 사용하고,O X를 나타내기 위해 CASE WHEN을 사용 할 수 있겠다. 3. 정답 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 ORDER BY 1;

1. 문제 설명 2. 문제 풀이 이름이 없는 동물의 이름을 "No name"으로 표시해 주세요=> IFNULL을 이용하자. 참고하면 좋을 듯 [DB] MySQL NULL 처리(IFNULL, CASE, COALESCE) MySQL에서 Column의 값이 Null인 경우를 처리해주는 함수들은 IFNULL, CASE, COALESCE과 같은 함수들이 있다.Orcale의 NVL()과 비슷한 기능을 한다.해당 Column의 값이 NULL을 반환할 때, 다른 값으로 출력할 수 있 velog.io 3. 답 SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') NAME, SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID;