diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/131535.\342\200\205\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\355\232\214\354\233\220\354\210\230\342\200\205\352\265\254\355\225\230\352\270\260/README.md" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/131535.\342\200\205\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\355\232\214\354\233\220\354\210\230\342\200\205\352\265\254\355\225\230\352\270\260/README.md" new file mode 100644 index 0000000..9fcf33c --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/131535.\342\200\205\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\355\232\214\354\233\220\354\210\230\342\200\205\352\265\254\355\225\230\352\270\260/README.md" @@ -0,0 +1,130 @@ +# [level 1] 조건에 맞는 회원수 구하기 - 131535 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/131535) + +### 성능 요약 + +메모리: undefined, 시간: + +### 구분 + +코딩테스트 연습 > SELECT + +### 채점결과 + +합계: 100.0 / 100.0 + +### 제출 일자 + +2026년 10월 31일 16:19:12 + +### 문제 설명 + +

다음은 어느 의류 쇼핑몰에 가입한 회원 정보를 담은 USER_INFO 테이블입니다. USER_INFO 테이블은 아래와 같은 구조로 되어있으며 USER_ID, GENDER, AGE, JOINED는 각각 회원 ID, 성별, 나이, 가입일을 나타냅니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Column nameTypeNullable
USER_IDINTEGERFALSE
GENDERTINYINT(1)TRUE
AGEINTEGERTRUE
JOINEDDATEFALSE
+

GENDER 컬럼은 비어있거나 0 또는 1의 값을 가지며 0인 경우 남자를, 1인 경우는 여자를 나타냅니다.

+ +
+ +
문제
+ +

USER_INFO 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력하는 SQL문을 작성해주세요.

+ +
+ +
예시
+ +

예를 들어 USER_INFO 테이블이 다음과 같다면

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
USER_IDGENDERAGEJOINED
11262021-10-05
20NULL2021-11-25
31222021-11-30
40312021-12-03
50282021-12-16
61242022-01-03
71NULL2022-01-09
+

2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원은 USER_ID 가 1, 3, 5 인 회원들 이므로, 다음과 같이 결과가 나와야 합니다.

+ + + + + + + + + +
USERS
3
+ +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/131535.\342\200\205\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\355\232\214\354\233\220\354\210\230\342\200\205\352\265\254\355\225\230\352\270\260/\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\355\232\214\354\233\220\354\210\230\342\200\205\352\265\254\355\225\230\352\270\260.sql" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/131535.\342\200\205\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\355\232\214\354\233\220\354\210\230\342\200\205\352\265\254\355\225\230\352\270\260/\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\355\232\214\354\233\220\354\210\230\342\200\205\352\265\254\355\225\230\352\270\260.sql" new file mode 100644 index 0000000..14eea78 --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/131535.\342\200\205\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\355\232\214\354\233\220\354\210\230\342\200\205\352\265\254\355\225\230\352\270\260/\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\355\232\214\354\233\220\354\210\230\342\200\205\352\265\254\355\225\230\352\270\260.sql" @@ -0,0 +1,4 @@ +-- 코드를 입력하세요 +SELECT COUNT(*) AS USERS +FROM USER_INFO +WHERE YEAR(JOINED) = 2021 AND AGE >=20 AND AGE<=29 diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/276013.\342\200\205Python\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260/Python\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260.sql" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/276013.\342\200\205Python\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260/Python\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260.sql" new file mode 100644 index 0000000..e68f53c --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/276013.\342\200\205Python\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260/Python\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260.sql" @@ -0,0 +1,5 @@ +-- 코드를 작성해주세요 +SELECT ID,EMAIL,FIRST_NAME,LAST_NAME +FROM DEVELOPER_INFOS +WHERE SKILL_1 = 'Python' OR SKILL_2 = 'Python' OR SKILL_3 = 'Python' +ORDER BY ID ASC \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/276013.\342\200\205Python\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260/README.md" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/276013.\342\200\205Python\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260/README.md" new file mode 100644 index 0000000..9e3eb0c --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/276013.\342\200\205Python\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260/README.md" @@ -0,0 +1,171 @@ +# [level 1] Python 개발자 찾기 - 276013 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/276013) + +### 성능 요약 + +메모리: undefined, 시간: + +### 구분 + +코딩테스트 연습 > SELECT + +### 채점결과 + +합계: 100.0 / 100.0 + +### 제출 일자 + +2026년 10월 31일 16:45:07 + +### 문제 설명 + +

DEVELOPER_INFOS 테이블은 개발자들의 프로그래밍 스킬 정보를 담은 테이블입니다. DEVELOPER_INFOS 테이블 구조는 다음과 같으며, ID, FIRST_NAME, LAST_NAME, EMAIL, SKILL_1, SKILL_2, SKILL_3는 각각 ID, 이름, 성, 이메일, 첫 번째 스킬, 두 번째 스킬, 세 번째 스킬을 의미합니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NAMETYPEUNIQUENULLABLE
IDVARCHAR(N)YN
FIRST_NAMEVARCHAR(N)NY
LAST_NAMEVARCHAR(N)NY
EMAILVARCHAR(N)YN
SKILL_1VARCHAR(N)NY
SKILL_2VARCHAR(N)NY
SKILL_3VARCHAR(N)NY
+
+ +
문제
+ +

DEVELOPER_INFOS 테이블에서 Python 스킬을 가진 개발자의 정보를 조회하려 합니다. Python 스킬을 가진 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해 주세요.

+ +

결과는 ID를 기준으로 오름차순 정렬해 주세요.

+ +
+ +
예시
+ +

예를 들어 DEVELOPER_INFOS 테이블이 다음과 같다면

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDFIRST_NAMELAST_NAMEEMAILSKILL_1SKILL_2SKILL_3
D165JeramiEdwardsjerami_edwards@grepp.coJavaJavaScriptPython
D161CarsenGarzacarsen_garza@grepp.coReact
D164KellyGrantkelly_grant@grepp.coC#
D163LukaCoryluka_cory@grepp.coNode.js
D162CadeCunninghamcade_cunningham@grepp.coVueC++Python
+

다음과 같이 Python 스킬을 가진 개발자의 정보가 결과에 나와야 합니다.

+ + + + + + + + + + + + + + + + + + + + + +
IDEMAILFIRST_NAMELAST_NAME
D162cade_cunningham@grepp.coCadeCunningham
D165jerami_edwards@grepp.coJeramiEdwards
+ +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59034.\342\200\205\353\252\250\353\223\240\342\200\205\353\240\210\354\275\224\353\223\234\342\200\205\354\241\260\355\232\214\355\225\230\352\270\260/README.md" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59034.\342\200\205\353\252\250\353\223\240\342\200\205\353\240\210\354\275\224\353\223\234\342\200\205\354\241\260\355\232\214\355\225\230\352\270\260/README.md" new file mode 100644 index 0000000..74171c9 --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59034.\342\200\205\353\252\250\353\223\240\342\200\205\353\240\210\354\275\224\353\223\234\342\200\205\354\241\260\355\232\214\355\225\230\352\270\260/README.md" @@ -0,0 +1,115 @@ +# [level 1] 모든 레코드 조회하기 - 59034 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/59034) + +### 성능 요약 + +메모리: undefined, 시간: + +### 구분 + +코딩테스트 연습 > SELECT + +### 채점결과 + +합계: 100.0 / 100.0 + +### 제출 일자 + +2026년 10월 31일 14:39:28 + +### 문제 설명 + +

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
INTAKE_CONDITIONVARCHAR(N)FALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_INTAKEVARCHAR(N)FALSE
+

동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE
A349996Cat2018-01-22 14:32:00NormalSugarNeutered Male
A350276Cat2017-08-13 13:50:00NormalJewelSpayed Female
A350375Cat2017-03-06 15:01:00NormalMeoNeutered Male
A352555Dog2014-08-08 04:20:00NormalHarleySpayed Female
+

..이하 생략

+ +
+ +

본 문제는 Kaggle의 "Austin Animal Center Shelter Intakes and Outcomes"에서 제공하는 데이터를 사용하였으며 ODbL의 적용을 받습니다.

+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59034.\342\200\205\353\252\250\353\223\240\342\200\205\353\240\210\354\275\224\353\223\234\342\200\205\354\241\260\355\232\214\355\225\230\352\270\260/\353\252\250\353\223\240\342\200\205\353\240\210\354\275\224\353\223\234\342\200\205\354\241\260\355\232\214\355\225\230\352\270\260.sql" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59034.\342\200\205\353\252\250\353\223\240\342\200\205\353\240\210\354\275\224\353\223\234\342\200\205\354\241\260\355\232\214\355\225\230\352\270\260/\353\252\250\353\223\240\342\200\205\353\240\210\354\275\224\353\223\234\342\200\205\354\241\260\355\232\214\355\225\230\352\270\260.sql" new file mode 100644 index 0000000..1e2092f --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59034.\342\200\205\353\252\250\353\223\240\342\200\205\353\240\210\354\275\224\353\223\234\342\200\205\354\241\260\355\232\214\355\225\230\352\270\260/\353\252\250\353\223\240\342\200\205\353\240\210\354\275\224\353\223\234\342\200\205\354\241\260\355\232\214\355\225\230\352\270\260.sql" @@ -0,0 +1,4 @@ +-- 코드를 입력하세요 +SELECT * +FROM ANIMAL_INS +ORDER BY ANIMAL_ID ASC \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59035.\342\200\205\354\227\255\354\210\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/README.md" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59035.\342\200\205\354\227\255\354\210\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/README.md" new file mode 100644 index 0000000..0a0bd1b --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59035.\342\200\205\354\227\255\354\210\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/README.md" @@ -0,0 +1,99 @@ +# [level 1] 역순 정렬하기 - 59035 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/59035) + +### 성능 요약 + +메모리: undefined, 시간: + +### 구분 + +코딩테스트 연습 > SELECT + +### 채점결과 + +합계: 100.0 / 100.0 + +### 제출 일자 + +2026년 10월 31일 14:41:03 + +### 문제 설명 + +

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
INTAKE_CONDITIONVARCHAR(N)FALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_INTAKEVARCHAR(N)FALSE
+

동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
NAMEDATETIME
Rocky2016-06-07 09:17:00
Shelly2015-01-29 15:01:00
Benji2016-04-19 13:28:00
Jackie2016-01-03 16:25:00
*Sam2016-03-13 11:17:00
+

..이하 생략

+ +
+ +

본 문제는 Kaggle의 "Austin Animal Center Shelter Intakes and Outcomes"에서 제공하는 데이터를 사용하였으며 ODbL의 적용을 받습니다.

+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59035.\342\200\205\354\227\255\354\210\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/\354\227\255\354\210\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260.sql" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59035.\342\200\205\354\227\255\354\210\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/\354\227\255\354\210\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260.sql" new file mode 100644 index 0000000..b2aa0e5 --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59035.\342\200\205\354\227\255\354\210\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/\354\227\255\354\210\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260.sql" @@ -0,0 +1,4 @@ +-- 코드를 입력하세요 +SELECT NAME,DATETIME +FROM ANIMAL_INS +ORDER BY ANIMAL_ID DESC; \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59036.\342\200\205\354\225\204\355\224\210\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260/README.md" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59036.\342\200\205\354\225\204\355\224\210\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260/README.md" new file mode 100644 index 0000000..3206685 --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59036.\342\200\205\354\225\204\355\224\210\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260/README.md" @@ -0,0 +1,145 @@ +# [level 1] 아픈 동물 찾기 - 59036 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/59036) + +### 성능 요약 + +메모리: undefined, 시간: + +### 구분 + +코딩테스트 연습 > SELECT + +### 채점결과 + +합계: 100.0 / 100.0 + +### 제출 일자 + +2026년 10월 31일 15:54:05 + +### 문제 설명 + +

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
INTAKE_CONDITIONVARCHAR(N)FALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_INTAKEVARCHAR(N)FALSE
+

동물 보호소에 들어온 동물 중 아픈 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.

+ +
예시
+ +

예를 들어 ANIMAL_INS 테이블이 다음과 같다면

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE
A365172Dog2014-08-26 12:53:00NormalDiabloNeutered Male
A367012Dog2015-09-16 09:06:00SickMillerNeutered Male
A365302Dog2017-01-08 16:34:00AgedMinnieSpayed Female
A381217Dog2017-07-08 09:41:00SickCherokeeNeutered Male
+

이 중 아픈 동물은 Miller와 Cherokee입니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.

+ + + + + + + + + + + + + + + +
ANIMAL_IDNAME
A367012Miller
A381217Cherokee
+
+ +

본 문제는 Kaggle의 "Austin Animal Center Shelter Intakes and Outcomes"에서 제공하는 데이터를 사용하였으며 ODbL의 적용을 받습니다.

+ +
+
+
    + +
  1. +

    INTAKE_CONDITION이 Sick 인 경우를 뜻함 ↩

    +
  2. + +
+
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59036.\342\200\205\354\225\204\355\224\210\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260/\354\225\204\355\224\210\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260.sql" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59036.\342\200\205\354\225\204\355\224\210\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260/\354\225\204\355\224\210\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260.sql" new file mode 100644 index 0000000..3005b76 --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59036.\342\200\205\354\225\204\355\224\210\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260/\354\225\204\355\224\210\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260.sql" @@ -0,0 +1,4 @@ +-- 코드를 입력하세요 +SELECT ANIMAL_ID,NAME +FROM ANIMAL_INS +WHERE INTAKE_CONDITION = 'Sick' \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59037.\342\200\205\354\226\264\353\246\260\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260/README.md" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59037.\342\200\205\354\226\264\353\246\260\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260/README.md" new file mode 100644 index 0000000..e1a20b4 --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59037.\342\200\205\354\226\264\353\246\260\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260/README.md" @@ -0,0 +1,149 @@ +# [level 1] 어린 동물 찾기 - 59037 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/59037) + +### 성능 요약 + +메모리: undefined, 시간: + +### 구분 + +코딩테스트 연습 > SELECT + +### 채점결과 + +합계: 100.0 / 100.0 + +### 제출 일자 + +2026년 10월 31일 16:11:33 + +### 문제 설명 + +

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
INTAKE_CONDITIONVARCHAR(N)FALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_INTAKEVARCHAR(N)FALSE
+

동물 보호소에 들어온 동물 중 젊은 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.

+ +
예시
+ +

예를 들어 ANIMAL_INS 테이블이 다음과 같다면

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE
A365172Dog2014-08-26 12:53:00NormalDiabloNeutered Male
A367012Dog2015-09-16 09:06:00SickMillerNeutered Male
A365302Dog2017-01-08 16:34:00AgedMinnieSpayed Female
A381217Dog2017-07-08 09:41:00SickCherokeeNeutered Male
+

이 중 젊은 동물은 Diablo, Miller, Cherokee입니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.

+ + + + + + + + + + + + + + + + + + + +
ANIMAL_IDNAME
A365172Diablo
A367012Miller
A381217Cherokee
+
+ +

본 문제는 Kaggle의 "Austin Animal Center Shelter Intakes and Outcomes"에서 제공하는 데이터를 사용하였으며 ODbL의 적용을 받습니다.

+ +
+
+
    + +
  1. +

    INTAKE_CONDITION이 Aged가 아닌 경우를 뜻함 ↩

    +
  2. + +
+
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59037.\342\200\205\354\226\264\353\246\260\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260/\354\226\264\353\246\260\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260.sql" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59037.\342\200\205\354\226\264\353\246\260\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260/\354\226\264\353\246\260\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260.sql" new file mode 100644 index 0000000..96add18 --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59037.\342\200\205\354\226\264\353\246\260\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260/\354\226\264\353\246\260\342\200\205\353\217\231\353\254\274\342\200\205\354\260\276\352\270\260.sql" @@ -0,0 +1,5 @@ +-- 코드를 입력하세요 +SELECT ANIMAL_ID,NAME +FROM ANIMAL_INS +WHERE INTAKE_CONDITION !='Aged' +ORDER BY ANIMAL_ID; \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59404.\342\200\205\354\227\254\353\237\254\342\200\205\352\270\260\354\244\200\354\234\274\353\241\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/README.md" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59404.\342\200\205\354\227\254\353\237\254\342\200\205\352\270\260\354\244\200\354\234\274\353\241\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/README.md" new file mode 100644 index 0000000..a3f8f02 --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59404.\342\200\205\354\227\254\353\237\254\342\200\205\352\270\260\354\244\200\354\234\274\353\241\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/README.md" @@ -0,0 +1,152 @@ +# [level 1] 여러 기준으로 정렬하기 - 59404 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/59404) + +### 성능 요약 + +메모리: undefined, 시간: + +### 구분 + +코딩테스트 연습 > SELECT + +### 채점결과 + +합계: 100.0 / 100.0 + +### 제출 일자 + +2026년 10월 31일 16:14:52 + +### 문제 설명 + +

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
INTAKE_CONDITIONVARCHAR(N)FALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_INTAKEVARCHAR(N)FALSE
+

동물 보호소에 들어온 모든 동물의 아이디와 이름, 보호 시작일을 이름 순으로 조회하는 SQL문을 작성해주세요. 단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보여줘야 합니다.

+ +
예시
+ +

예를 들어, ANIMAL_INS 테이블이 다음과 같다면

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE
A349996Cat2018-01-22 14:32:00NormalSugarNeutered Male
A350276Cat2017-08-13 13:50:00NormalJewelSpayed Female
A396810Dog2016-08-22 16:13:00InjuredRavenSpayed Female
A410668Cat2015-11-19 13:41:00NormalRavenSpayed Female
+
    +
  1. 이름을 사전 순으로 정렬하면 다음과 같으며, 'Jewel', 'Raven', 'Sugar'
  2. +
  3. 'Raven'이라는 이름을 가진 개와 고양이가 있으므로, 이 중에서는 보호를 나중에 시작한 개를 먼저 조회합니다.
  4. +
+ +

따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ANIMAL_IDNAMEDATETIME
A350276Jewel2017-08-13 13:50:00
A396810Raven2016-08-22 16:13:00
A410668Raven2015-11-19 13:41:00
A349996Sugar2018-01-22 14:32:00
+
+ +

본 문제는 Kaggle의 "Austin Animal Center Shelter Intakes and Outcomes"에서 제공하는 데이터를 사용하였으며 ODbL의 적용을 받습니다.

+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59404.\342\200\205\354\227\254\353\237\254\342\200\205\352\270\260\354\244\200\354\234\274\353\241\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/\354\227\254\353\237\254\342\200\205\352\270\260\354\244\200\354\234\274\353\241\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260.sql" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59404.\342\200\205\354\227\254\353\237\254\342\200\205\352\270\260\354\244\200\354\234\274\353\241\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/\354\227\254\353\237\254\342\200\205\352\270\260\354\244\200\354\234\274\353\241\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260.sql" new file mode 100644 index 0000000..8974a2b --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59404.\342\200\205\354\227\254\353\237\254\342\200\205\352\270\260\354\244\200\354\234\274\353\241\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/\354\227\254\353\237\254\342\200\205\352\270\260\354\244\200\354\234\274\353\241\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260.sql" @@ -0,0 +1,4 @@ +-- 코드를 입력하세요 +SELECT ANIMAL_ID,NAME,DATETIME +FROM ANIMAL_INS +ORDER BY NAME,DATETIME DESC \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59405.\342\200\205\354\203\201\354\234\204\342\200\205n\352\260\234\342\200\205\353\240\210\354\275\224\353\223\234/README.md" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59405.\342\200\205\354\203\201\354\234\204\342\200\205n\352\260\234\342\200\205\353\240\210\354\275\224\353\223\234/README.md" new file mode 100644 index 0000000..e398c64 --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59405.\342\200\205\354\203\201\354\234\204\342\200\205n\352\260\234\342\200\205\353\240\210\354\275\224\353\223\234/README.md" @@ -0,0 +1,130 @@ +# [level 1] 상위 n개 레코드 - 59405 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/59405) + +### 성능 요약 + +메모리: undefined, 시간: + +### 구분 + +코딩테스트 연습 > SELECT + +### 채점결과 + +합계: 100.0 / 100.0 + +### 제출 일자 + +2026년 10월 31일 16:17:16 + +### 문제 설명 + +

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
INTAKE_CONDITIONVARCHAR(N)FALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_INTAKEVARCHAR(N)FALSE
+

동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요.

+ +
예시
+ +

예를 들어 ANIMAL_INS 테이블이 다음과 같다면

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE
A399552Dog2013-10-14 15:38:00NormalJackNeutered Male
A379998Dog2013-10-23 11:42:00NormalDiscipleIntact Male
A370852Dog2013-11-03 15:04:00NormalKatieSpayed Female
A403564Dog2013-11-18 17:03:00NormalAnnaSpayed Female
+

이 중 가장 보호소에 먼저 들어온 동물은 Jack입니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.

+ + + + + + + + + +
NAME
Jack
+

※ 보호소에 가장 먼저 들어온 동물은 한 마리인 경우만 테스트 케이스로 주어집니다.

+ +
+ +

본 문제는 Kaggle의 "Austin Animal Center Shelter Intakes and Outcomes"에서 제공하는 데이터를 사용하였으며 ODbL의 적용을 받습니다.

+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59405.\342\200\205\354\203\201\354\234\204\342\200\205n\352\260\234\342\200\205\353\240\210\354\275\224\353\223\234/\354\203\201\354\234\204\342\200\205n\352\260\234\342\200\205\353\240\210\354\275\224\353\223\234.sql" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59405.\342\200\205\354\203\201\354\234\204\342\200\205n\352\260\234\342\200\205\353\240\210\354\275\224\353\223\234/\354\203\201\354\234\204\342\200\205n\352\260\234\342\200\205\353\240\210\354\275\224\353\223\234.sql" new file mode 100644 index 0000000..8d593d5 --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/59405.\342\200\205\354\203\201\354\234\204\342\200\205n\352\260\234\342\200\205\353\240\210\354\275\224\353\223\234/\354\203\201\354\234\204\342\200\205n\352\260\234\342\200\205\353\240\210\354\275\224\353\223\234.sql" @@ -0,0 +1,5 @@ +-- 코드를 입력하세요 +SELECT NAME +FROM ANIMAL_INS +ORDER BY DATETIME ASC +LIMIT 1 \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/273711.\342\200\205\354\227\205\352\267\270\353\240\210\354\235\264\353\223\234\342\200\205\353\220\234\342\200\205\354\225\204\354\235\264\355\205\234\342\200\205\352\265\254\355\225\230\352\270\260/README.md" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/273711.\342\200\205\354\227\205\352\267\270\353\240\210\354\235\264\353\223\234\342\200\205\353\220\234\342\200\205\354\225\204\354\235\264\355\205\234\342\200\205\352\265\254\355\225\230\352\270\260/README.md" new file mode 100644 index 0000000..c96fef8 --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/273711.\342\200\205\354\227\205\352\267\270\353\240\210\354\235\264\353\223\234\342\200\205\353\220\234\342\200\205\354\225\204\354\235\264\355\205\234\342\200\205\352\265\254\355\225\230\352\270\260/README.md" @@ -0,0 +1,203 @@ +# [level 2] 업그레이드 된 아이템 구하기 - 273711 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/273711) + +### 성능 요약 + +메모리: undefined, 시간: + +### 구분 + +코딩테스트 연습 > SELECT + +### 채점결과 + +합계: 100.0 / 100.0 + +### 제출 일자 + +2026년 10월 31일 16:40:54 + +### 문제 설명 + +

어느 한 게임에서 사용되는 아이템들은 업그레이드가 가능합니다.
+'ITEM_A'->'ITEM_B'와 같이 업그레이드가 가능할 때
+'ITEM_A'를 'ITEM_B' 의 PARENT 아이템,
+ PARENT 아이템이 없는 아이템을 ROOT 아이템이라고 합니다.

+ +

예를 들어 'ITEM_A'->'ITEM_B'->'ITEM_C'와 같이 업그레이드가 가능한 아이템이 있다면
+'ITEM_C'의 PARENT 아이템은 'ITEM_B'
+'ITEM_B'의 PARENT 아이템은 'ITEM_A'
+ROOT 아이템은 'ITEM_A'가 됩니다.

+ +

다음은 해당 게임에서 사용되는 아이템 정보를 담은 ITEM_INFO 테이블과 아이템 관계를 나타낸 ITEM_TREE 테이블입니다. ITEM_INFO 테이블은 다음과 같으며, ITEM_ID, ITEM_NAME, RARITY, PRICE는 각각 아이템 ID, 아이템 명, 아이템의 희귀도, 아이템의 가격을 나타냅니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Column nameTypeNullable
ITEM_IDINTEGERFALSE
ITEM_NAMEVARCHAR(N)FALSE
RARITYINTEGERFALSE
PRICEINTEGERFALSE
+

ITEM_TREE 테이블은 다음과 같으며, ITEM_ID, PARENT_ITEM_ID는 각각 아이템 ID, PARENT 아이템의 ID를 나타냅니다.

+ + + + + + + + + + + + + + + + + + +
Column nameTypeNullable
ITEM_IDINTEGERFALSE
PARENT_ITEM_IDINTEGERTRUE
+

단, 각 아이템들은 오직 하나의 PARENT 아이템 ID를 가지며, ROOT 아이템의 PARENT 아이템 ID는 NULL 입니다.

+ +

ROOT 아이템이 없는 경우는 존재하지 않습니다.

+ +
+ +
문제
+ +

아이템의 희귀도가 'RARE'인 아이템들의 모든 다음 업그레이드 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬주세요.

+ +
+ +
예시
+ +

예를 들어 ITEM_INFO 테이블이 다음과 같고

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ITEM_IDITEM_NAMERARITYPRICE
0ITEM_ARARE10000
1ITEM_BRARE9000
2ITEM_CLEGEND11000
3ITEM_DRARE10000
4ITEM_ERARE12000
+

ITEM_TREE 테이블이 다음과 같다면

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ITEM_IDPARENT_ITEM_ID
0NULL
10
20
31
41
+

아이템의 희귀도가 'RARE'인 아이템은 'ITEM_A', 'ITEM_B', 'ITEM_D', 'ITEM_E' 입니다.
+이 중 'ITEM_A' 는 'ITEM_B', 'ITEM_C' 로 업그레이드가 가능하며 'ITEM_B' 는 'ITEM_D' , 'ITEM_E' 로 업그레이드가 가능합니다. 'ITEM_D' 와 'ITEM_E'는 더 이상 업그레이드가 가능하지 않습니다. 따라서 결과는 다음과 같이 나와야 합니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ITEM_IDITEM_NAMERARITY
4ITEM_ERARE
3ITEM_DRARE
2ITEM_CLEGEND
1ITEM_BRARE
+
+ +

※ 참고: 본 문제는 제출 내역 확인 기능을 지원하지 않습니다.

+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/273711.\342\200\205\354\227\205\352\267\270\353\240\210\354\235\264\353\223\234\342\200\205\353\220\234\342\200\205\354\225\204\354\235\264\355\205\234\342\200\205\352\265\254\355\225\230\352\270\260/\354\227\205\352\267\270\353\240\210\354\235\264\353\223\234\342\200\205\353\220\234\342\200\205\354\225\204\354\235\264\355\205\234\342\200\205\352\265\254\355\225\230\352\270\260.sql" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/273711.\342\200\205\354\227\205\352\267\270\353\240\210\354\235\264\353\223\234\342\200\205\353\220\234\342\200\205\354\225\204\354\235\264\355\205\234\342\200\205\352\265\254\355\225\230\352\270\260/\354\227\205\352\267\270\353\240\210\354\235\264\353\223\234\342\200\205\353\220\234\342\200\205\354\225\204\354\235\264\355\205\234\342\200\205\352\265\254\355\225\230\352\270\260.sql" new file mode 100644 index 0000000..d1a93fe --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/273711.\342\200\205\354\227\205\352\267\270\353\240\210\354\235\264\353\223\234\342\200\205\353\220\234\342\200\205\354\225\204\354\235\264\355\205\234\342\200\205\352\265\254\355\225\230\352\270\260/\354\227\205\352\267\270\353\240\210\354\235\264\353\223\234\342\200\205\353\220\234\342\200\205\354\225\204\354\235\264\355\205\234\342\200\205\352\265\254\355\225\230\352\270\260.sql" @@ -0,0 +1,6 @@ +-- 코드를 작성해주세요 +SELECT I.ITEM_ID,I.ITEM_NAME,I.RARITY +FROM ITEM_INFO I JOIN ITEM_TREE T ON I.ITEM_ID = T.ITEM_ID +JOIN ITEM_INFO P ON P.ITEM_ID = T.PARENT_ITEM_ID +WHERE P.RARITY = 'RARE' +ORDER BY I.ITEM_ID DESC \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/276034.\342\200\205\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260/README.md" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/276034.\342\200\205\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260/README.md" new file mode 100644 index 0000000..a8a93b7 --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/276034.\342\200\205\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260/README.md" @@ -0,0 +1,240 @@ +# [level 2] 조건에 맞는 개발자 찾기 - 276034 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/276034) + +### 성능 요약 + +메모리: undefined, 시간: + +### 구분 + +코딩테스트 연습 > SELECT + +### 채점결과 + +합계: 100.0 / 100.0 + +### 제출 일자 + +2026년 10월 31일 17:00:03 + +### 문제 설명 + +

SKILLCODES 테이블은 개발자들이 사용하는 프로그래밍 언어에 대한 정보를 담은 테이블입니다. SKILLCODES 테이블의 구조는 다음과 같으며, NAME, CATEGORY, CODE는 각각 스킬의 이름, 스킬의 범주, 스킬의 코드를 의미합니다. 스킬의 코드는 2진수로 표현했을 때 각 bit로 구분될 수 있도록 2의 제곱수로 구성되어 있습니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
NAMETYPEUNIQUENULLABLE
NAMEVARCHAR(N)YN
CATEGORYVARCHAR(N)NN
CODEINTEGERYN
+

DEVELOPERS 테이블은 개발자들의 프로그래밍 스킬 정보를 담은 테이블입니다. DEVELOPERS 테이블의 구조는 다음과 같으며, ID, FIRST_NAME, LAST_NAME, EMAIL, SKILL_CODE는 각각 개발자의 ID, 이름, 성, 이메일, 스킬 코드를 의미합니다. SKILL_CODE 컬럼은 INTEGER 타입이고, 2진수로 표현했을 때 각 bit는 SKILLCODES 테이블의 코드를 의미합니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NAMETYPEUNIQUENULLABLE
IDVARCHAR(N)YN
FIRST_NAMEVARCHAR(N)NY
LAST_NAMEVARCHAR(N)NY
EMAILVARCHAR(N)YN
SKILL_CODEINTEGERNN
+

예를 들어 어떤 개발자의 SKILL_CODE가 400 (=b'110010000')이라면, 이는 SKILLCODES 테이블에서 CODE가 256 (=b'100000000'), 128 (=b'10000000'), 16 (=b'10000') 에 해당하는 스킬을 가졌다는 것을 의미합니다.

+ +
+ +
문제
+ +

DEVELOPERS 테이블에서 Python이나 C# 스킬을 가진 개발자의 정보를 조회하려 합니다. 조건에 맞는 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해 주세요.

+ +

결과는 ID를 기준으로 오름차순 정렬해 주세요.

+ +
+ +
예시
+ +

예를 들어 SKILLCODES 테이블이 다음과 같고,

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NAMECATEGORYCODE
C++Back End4
JavaScriptFront End16
JavaBack End128
PythonBack End256
C#Back End1024
ReactFront End2048
VueFront End8192
Node.jsBack End16384
+

DEVELOPERS 테이블이 다음과 같다면

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDFIRST_NAMELAST_NAMEEMAILSKILL_CODE
D165JeramiEdwardsjerami_edwards@grepp.co400
D161CarsenGarzacarsen_garza@grepp.co2048
D164KellyGrantkelly_grant@grepp.co1024
D163LukaCoryluka_cory@grepp.co16384
D162CadeCunninghamcade_cunningham@grepp.co8452
+

다음과 같이 DEVELOPERS 테이블에 포함된 개발자 중 Python 스킬이나 C# 스킬을 가진 개발자의 정보가 결과에 나와야 합니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDEMAILFIRST_NAMELAST_NAME
D162cade_cunningham@grepp.coCadeCunningham
D164kelly_grant@grepp.coKellyGrant
D165jerami_edwards@grepp.coJeramiEdwards
+ + + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/276034.\342\200\205\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260/\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260.sql" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/276034.\342\200\205\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260/\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260.sql" new file mode 100644 index 0000000..b238add --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/276034.\342\200\205\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260/\354\241\260\352\261\264\354\227\220\342\200\205\353\247\236\353\212\224\342\200\205\352\260\234\353\260\234\354\236\220\342\200\205\354\260\276\352\270\260.sql" @@ -0,0 +1,5 @@ +-- 코드를 작성해주세요 +SELECT DISTINCT D.ID,D.EMAIL,D.FIRST_NAME,D.LAST_NAME +FROM DEVELOPERS D JOIN SKILLCODES S ON D.SKILL_CODE & S.CODE +WHERE S.NAME = 'Python' OR S.NAME = 'C#' +ORDER BY D.ID ASC; \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/4/131537.\342\200\205\354\230\244\355\224\204\353\235\274\354\235\270\357\274\217\354\230\250\353\235\274\354\235\270\342\200\205\355\214\220\353\247\244\342\200\205\353\215\260\354\235\264\355\204\260\342\200\205\355\206\265\355\225\251\355\225\230\352\270\260/README.md" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/4/131537.\342\200\205\354\230\244\355\224\204\353\235\274\354\235\270\357\274\217\354\230\250\353\235\274\354\235\270\342\200\205\355\214\220\353\247\244\342\200\205\353\215\260\354\235\264\355\204\260\342\200\205\355\206\265\355\225\251\355\225\230\352\270\260/README.md" new file mode 100644 index 0000000..2253f2e --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/4/131537.\342\200\205\354\230\244\355\224\204\353\235\274\354\235\270\357\274\217\354\230\250\353\235\274\354\235\270\342\200\205\355\214\220\353\247\244\342\200\205\353\215\260\354\235\264\355\204\260\342\200\205\355\206\265\355\225\251\355\225\230\352\270\260/README.md" @@ -0,0 +1,263 @@ +# [level 4] 오프라인/온라인 판매 데이터 통합하기 - 131537 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/131537) + +### 성능 요약 + +메모리: undefined, 시간: + +### 구분 + +코딩테스트 연습 > SELECT + +### 채점결과 + +합계: 100.0 / 100.0 + +### 제출 일자 + +2026년 10월 31일 15:08:16 + +### 문제 설명 + +

다음은 어느 의류 쇼핑몰의 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블과 오프라인 상품 판매 정보를 담은 OFFLINE_SALE 테이블 입니다. ONLINE_SALE 테이블은 아래와 같은 구조로 되어있으며 ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 온라인 상품 판매 ID, 회원 ID, 상품 ID, 판매량, 판매일을 나타냅니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Column nameTypeNullable
ONLINE_SALE_IDINTEGERFALSE
USER_IDINTEGERFALSE
PRODUCT_IDINTEGERFALSE
SALES_AMOUNTINTEGERFALSE
SALES_DATEDATEFALSE
+

동일한 날짜, 회원 ID, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재합니다.

+ +

OFFLINE_SALE 테이블은 아래와 같은 구조로 되어있으며 OFFLINE_SALE_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 오프라인 상품 판매 ID, 상품 ID, 판매량, 판매일을 나타냅니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Column nameTypeNullable
OFFLINE_SALE_IDINTEGERFALSE
PRODUCT_IDINTEGERFALSE
SALES_AMOUNTINTEGERFALSE
SALES_DATEDATEFALSE
+

동일한 날짜, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재합니다.

+ +
+ +
문제
+ +

ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력하는 SQL문을 작성해주세요. OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시해주세요. 결과는 판매일을 기준으로 오름차순 정렬해주시고 판매일이 같다면 상품 ID를 기준으로 오름차순, 상품ID까지 같다면 유저 ID를 기준으로 오름차순 정렬해주세요.

+ +
+ +
예시
+ +

예를 들어 ONLINE_SALE 테이블이 다음과 같고

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ONLINE_SALE_IDUSER_IDPRODUCT_IDSALES_AMOUNTSALES_DATE
11322022-02-25
24412022-03-01
42222022-03-02
36332022-03-02
55512022-03-03
65712022-04-06
+

OFFLINE_SALE 테이블이 다음과 같다면

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OFFLINE_SALE_IDPRODUCT_IDSALES_AMOUNTSALES_DATE
1122022-02-21
4122022-03-01
3332022-03-01
2412022-03-01
5212022-03-03
6212022-04-01
+

각 테이블의 2022년 3월의 판매 데이터를 합쳐서, 정렬한 결과는 다음과 같아야 합니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SALES_DATEPRODUCT_IDUSER_IDSALES_AMOUNT
2022-03-011NULL2
2022-03-013NULL3
2022-03-014NULL1
2022-03-01441
2022-03-02222
2022-03-02363
2022-03-032NULL1
2022-03-03551
+ +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/4/131537.\342\200\205\354\230\244\355\224\204\353\235\274\354\235\270\357\274\217\354\230\250\353\235\274\354\235\270\342\200\205\355\214\220\353\247\244\342\200\205\353\215\260\354\235\264\355\204\260\342\200\205\355\206\265\355\225\251\355\225\230\352\270\260/\354\230\244\355\224\204\353\235\274\354\235\270\357\274\217\354\230\250\353\235\274\354\235\270\342\200\205\355\214\220\353\247\244\342\200\205\353\215\260\354\235\264\355\204\260\342\200\205\355\206\265\355\225\251\355\225\230\352\270\260.sql" "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/4/131537.\342\200\205\354\230\244\355\224\204\353\235\274\354\235\270\357\274\217\354\230\250\353\235\274\354\235\270\342\200\205\355\214\220\353\247\244\342\200\205\353\215\260\354\235\264\355\204\260\342\200\205\355\206\265\355\225\251\355\225\230\352\270\260/\354\230\244\355\224\204\353\235\274\354\235\270\357\274\217\354\230\250\353\235\274\354\235\270\342\200\205\355\214\220\353\247\244\342\200\205\353\215\260\354\235\264\355\204\260\342\200\205\355\206\265\355\225\251\355\225\230\352\270\260.sql" new file mode 100644 index 0000000..7731a86 --- /dev/null +++ "b/MySQL/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/4/131537.\342\200\205\354\230\244\355\224\204\353\235\274\354\235\270\357\274\217\354\230\250\353\235\274\354\235\270\342\200\205\355\214\220\353\247\244\342\200\205\353\215\260\354\235\264\355\204\260\342\200\205\355\206\265\355\225\251\355\225\230\352\270\260/\354\230\244\355\224\204\353\235\274\354\235\270\357\274\217\354\230\250\353\235\274\354\235\270\342\200\205\355\214\220\353\247\244\342\200\205\353\215\260\354\235\264\355\204\260\342\200\205\355\206\265\355\225\251\355\225\230\352\270\260.sql" @@ -0,0 +1,12 @@ +-- 코드를 입력하세요 +SELECT SALES_DATE,PRODUCT_ID,USER_ID,SALES_AMOUNT +FROM ONLINE_SALE +WHERE YEAR(SALES_DATE) = '2022' AND MONTH(SALES_DATE) = '3' + +UNION ALL + +SELECT SALES_DATE,PRODUCT_ID,NULL AS USER_ID,SALES_AMOUNT +FROM OFFLINE_SALE +WHERE YEAR(SALES_DATE) = '2022' AND MONTH(SALES_DATE) = '3' + +ORDER BY SALES_DATE ASC , PRODUCT_ID ASC , USER_ID ASC \ No newline at end of file