Skip to content

Commit 807d2c4

Browse files
committed
Programmers Solution
- SQL
1 parent 29315d5 commit 807d2c4

4 files changed

Lines changed: 66 additions & 1 deletion

Programmers/README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,8 +400,11 @@
400400
| 11 | [서울에 위치한 식당 목록 출력하기](https://school.programmers.co.kr/learn/courses/30/lessons/131118) | DATBASE | [SQL](https://github.com/SubAkBa/Algorithm_Solution/blob/master/Programmers/Solutions/Solution_%EC%84%9C%EC%9A%B8%EC%97%90%EC%9C%84%EC%B9%98%ED%95%9C%EC%8B%9D%EB%8B%B9%EB%AA%A9%EB%A1%9D%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0.sql) | |
401401
| 12 | [오프라인/온라인 판매 데이터 통합하기](https://school.programmers.co.kr/learn/courses/30/lessons/131537) | DATBASE | [SQL](https://github.com/SubAkBa/Algorithm_Solution/blob/master/Programmers/Solutions/Solution_%EC%98%A4%ED%94%84%EB%9D%BC%EC%9D%B8%2C%EC%98%A8%EB%9D%BC%EC%9D%B8%ED%8C%90%EB%A7%A4%EB%8D%B0%EC%9D%B4%ED%84%B0%ED%86%B5%ED%95%A9%ED%95%98%EA%B8%B0.sql) | |
402402
| 13 | [특정 세대의 대장균 찾기](https://school.programmers.co.kr/learn/courses/30/lessons/301650) | DATBASE | [SQL](https://github.com/SubAkBa/Algorithm_Solution/blob/master/Programmers/Solutions/Solution_%ED%8A%B9%EC%A0%95%EC%84%B8%EB%8C%80%EC%9D%98%EB%8C%80%EC%9E%A5%EA%B7%A0%EC%B0%BE%EA%B8%B0.sql) | |
403+
| 14 | [연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기](https://school.programmers.co.kr/learn/courses/30/lessons/284528) | DATBASE | [SQL]() | |
404+
| 15 | [특정 기간동안 대여 가능한 자동차들의 대여비용 구하기](https://school.programmers.co.kr/learn/courses/30/lessons/157339) | DATBASE | [SQL]() | |
403405

404406
### LEVEL 5
405407
| Idx | Question | Category | Solution | Note |
406408
|:---:|------------------------------------------------------------------------------------------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| ---- |
407-
| 1 | [상품을 구매한 회원 비율 구하기](https://school.programmers.co.kr/learn/courses/30/lessons/131534) | DATBASE | [SQL](https://github.com/SubAkBa/Algorithm_Solution/blob/master/Programmers/Solutions/Solution_%EC%83%81%ED%92%88%EC%9D%84%EA%B5%AC%EB%A7%A4%ED%95%9C%ED%9A%8C%EC%9B%90%EB%B9%84%EC%9C%A8%EA%B5%AC%ED%95%98%EA%B8%B0.sql) | |
409+
| 1 | [상품을 구매한 회원 비율 구하기](https://school.programmers.co.kr/learn/courses/30/lessons/131534) | DATBASE | [SQL](https://github.com/SubAkBa/Algorithm_Solution/blob/master/Programmers/Solutions/Solution_%EC%83%81%ED%92%88%EC%9D%84%EA%B5%AC%EB%A7%A4%ED%95%9C%ED%9A%8C%EC%9B%90%EB%B9%84%EC%9C%A8%EA%B5%AC%ED%95%98%EA%B8%B0.sql) | |
410+
| 2 | [멸종위기의 대장균 찾기](https://school.programmers.co.kr/learn/courses/30/lessons/301651) | DATBASE | [SQL]() | |
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
WITH RECURSIVE CTE AS (
2+
SELECT 1 AS GENERATION
3+
, ID
4+
, PARENT_ID
5+
FROM ECOLI_DATA
6+
WHERE PARENT_ID IS NULL
7+
UNION ALL
8+
SELECT GENERATION + 1
9+
, E.ID
10+
, C.ID
11+
FROM CTE C
12+
JOIN ECOLI_DATA E ON C.ID = E.PARENT_ID
13+
)
14+
SELECT COUNT(*) AS COUNT
15+
, GENERATION
16+
FROM CTE C1
17+
WHERE NOT EXISTS (
18+
SELECT 1
19+
FROM CTE C2
20+
WHERE C1.ID = C2.PARENT_ID
21+
)
22+
GROUP BY GENERATION
23+
ORDER BY GENERATION;
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
SELECT E.EMP_NO
2+
, E.EMP_NAME
3+
, ELT(G.BAND, 'S', 'A', 'B', 'C') AS GRADE
4+
, E.SAL * ELT(G.BAND, 0.2, 0.15, 0.1, 0.0) AS BONUS
5+
FROM HR_EMPLOYEES E
6+
JOIN (
7+
SELECT EMP_NO
8+
, AVG(SCORE) AS AVG_SCORE
9+
, CASE WHEN AVG(SCORE) >= 96 THEN 1
10+
WHEN AVG(SCORE) >= 90 THEN 2
11+
WHEN AVG(SCORE) >= 80 THEN 3
12+
ELSE 4
13+
END AS 'BAND'
14+
FROM HR_GRADE
15+
GROUP BY EMP_NO
16+
) G ON E.EMP_NO = G.EMP_NO
17+
ORDER BY E.EMP_NO;
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
SELECT *
2+
FROM (
3+
SELECT C.CAR_ID
4+
, C.CAR_TYPE
5+
, ROUND(C.DAILY_FEE * (1 - (
6+
SELECT DISCOUNT_RATE
7+
FROM CAR_RENTAL_COMPANY_DISCOUNT_PLAN
8+
WHERE CAR_TYPE = C.CAR_TYPE
9+
AND DURATION_TYPE = '30일 이상') / 100)) * 30 AS FEE
10+
FROM CAR_RENTAL_COMPANY_CAR C
11+
WHERE NOT EXISTS (
12+
SELECT 1
13+
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY H
14+
WHERE C.CAR_ID = H.CAR_ID
15+
AND H.START_DATE <= '2022-11-30'
16+
AND H.END_DATE >= '2022-11-01'
17+
)
18+
AND C.CAR_TYPE IN ('세단', 'SUV')
19+
) T
20+
WHERE T.FEE >= 500000
21+
AND T.FEE < 2000000
22+
ORDER BY T.FEE DESC, T.CAR_TYPE, T.CAR_ID DESC;

0 commit comments

Comments
 (0)