일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- HashMap
- LIS
- BFS
- 백트래킹
- Python
- 다이나믹프로그래밍
- 빅데이터
- 완전탐색
- 프로그래머스
- BufferedReader
- Stack
- 백준
- 문자열
- 그리디
- 배열
- 시뮬레이션
- 새벽코딩
- DP
- 탐색
- 구현
- 다리 만들기
- 브루트포스
- 알고리즘
- 아스키코드
- Queue
- dfs
- 스택
- oracle
- SQL
- Java
- Today
- Total
새벽코딩
[프로그래머스] 보호소에서 중성화한 동물 / 입양 시각 구하기(2) / 우유와 요거트가 담긴 장바구니 (ORACLE) 본문
[프로그래머스] 보호소에서 중성화한 동물 / 입양 시각 구하기(2) / 우유와 요거트가 담긴 장바구니 (ORACLE)
J 코딩 2023. 3. 28. 10:501. 보호소에서 중성화한 동물
https://school.programmers.co.kr/learn/courses/30/lessons/59045
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
NAMETYPENULLABLEANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
INTAKE_CONDITION | VARCHAR(N) | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_INTAKE | VARCHAR(N) | FALSE |
ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. ANIMAL_OUTS 테이블의 ANIMAL_ID는 ANIMAL_INS의 ANIMAL_ID의 외래 키입니다.
NAMETYPENULLABLEANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_OUTCOME | VARCHAR(N) | FALSE |
보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화1되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요.
※ SQL 코드
-- 코드를 입력하세요
with
vw_before_animals as (
select *
from animal_ins
where 1=1
and sex_upon_intake not in ('Neutered Male', 'Spayed Female')
)
select
a.animal_id
,a.animal_type
,a.name
from vw_before_animals a
inner join animal_outs b
on a.animal_id = b.animal_id
where 1=1
and b.sex_upon_outcome in ('Neutered Male', 'Spayed Female')
order by a.animal_id
2. 입양 시각 구하기(2)
https://school.programmers.co.kr/learn/courses/30/lessons/59413
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다.
NAMETYPENULLABLEANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_OUTCOME | VARCHAR(N) | FALSE |
보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.
※ SQL 코드
-- 코드를 입력하세요
WITH
vw_time_group as (
select
hour
, count(*) as count
from (
select
to_char(datetime, 'HH24') as hour
from animal_outs
)
group by hour
),
vw_tmp as (
select 0 as hour, 0 as count from dual
union all
select 1 as hour, 0 as count from dual
union all
select 2 as hour, 0 as count from dual
union all
select 3 as hour, 0 as count from dual
union all
select 4 as hour, 0 as count from dual
union all
select 5 as hour, 0 as count from dual
union all
select 6 as hour, 0 as count from dual
union all
select 7 as hour, 0 as count from dual
union all
select 8 as hour, 0 as count from dual
union all
select 9 as hour, 0 as count from dual
union all
select 10 as hour, 0 as count from dual
union all
select 11 as hour, 0 as count from dual
union all
select 12 as hour, 0 as count from dual
union all
select 13 as hour, 0 as count from dual
union all
select 14 as hour, 0 as count from dual
union all
select 15 as hour, 0 as count from dual
union all
select 16 as hour, 0 as count from dual
union all
select 17 as hour, 0 as count from dual
union all
select 18 as hour, 0 as count from dual
union all
select 19 as hour, 0 as count from dual
union all
select 20 as hour, 0 as count from dual
union all
select 21 as hour, 0 as count from dual
union all
select 22 as hour, 0 as count from dual
union all
select 23 as hour, 0 as count from dual
)
select a.hour
,nvl(b.count, 0) as count
from vw_tmp a
left outer join vw_time_group b
on a.hour = b.hour
order by a.hour
3. 우유와 요거트가 담긴 장바구니
https://school.programmers.co.kr/learn/courses/30/lessons/62284
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가격을 나타냅니다.
NAMETYPEID | INT |
CART_ID | INT |
NAME | VARCHAR |
PRICE | INT |
데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다.
※ SQL 코드
-- 코드를 입력하세요
with
vw_milk as (
select cart_id
from cart_products
where name = 'Milk'
)
select cart_id
from cart_products
where 1=1
and cart_id in (select cart_id
from vw_milk)
and name = 'Yogurt'
order by cart_id
매일의 기록 SQL
요즘은 자격증 공부를 겸하느라 블로그에 신경을 덜 쓰고 있는 거 같아 다시 시작해본다.
-새벽코딩-
'DB 모델링 & SQL' 카테고리의 다른 글
[프로그래머스] 저자 별 카테고리 별 매출액 집계하기 (SQL) (ORACLE) (0) | 2023.04.20 |
---|---|
[프로그래머스] 년, 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2023.03.30 |
[SQL 튜닝] 1. 최적화 (0) | 2022.04.24 |
[SQLP] SQL 기본과 활용 - 함수 (0) | 2022.02.03 |
[SQLP] SQL 기본과 활용 - 데이터 유형 (0) | 2022.02.03 |