코딩문제풀이/SQL
오늘밤공부
2023. 5. 25. 11:04
2023. 5. 25. 11:04
🗓️ 문제 설명
- Courses 테이블의 student, class는 각각 학생 이름, 과목을 나타냅니다.
- Student, class는 기본키입니다.
Column name |
Type |
student |
varchar |
class |
varchar |
❓문제
- 최소한 5명 이상의 학생들이 듣는 수업을 조회하는 SQL문을 작성해주세요.
- 문제 예시
student |
class |
A |
Math |
B |
English |
C |
Math |
D |
Biology |
E |
Math |
F |
Computer |
G |
Math |
H |
Math |
I |
Math |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 5. 23. 11:00
2023. 5. 23. 11:00
🗓️ 문제 설명
- World 테이블의 name, continent, area, population, gdp는 각각 나라이름, 대륙, 면적, 인구, GDP 값을 의미합니다.
- name은 기본키입니다.
Column name |
Type |
name |
varchar |
continent |
varchar |
area |
int |
population |
int |
gdp |
bigint |
❓문제
- 면적이 최소 3,000,000km² 이상이거나 인구가 최소 25,000,000명 이상인 경우 큰 나라라고 합니다.
- 큰 나라의 이름, 인구, 면적을 조회하는 SQL문을 작성해주세요.
- 문제 예시
name |
continent |
area |
population |
gdp |
Afghanistan |
Asia |
652230 |
25500100 |
20343000000 |
Albania |
Europe |
28748 |
2831741 |
12960000000 |
Algeria |
Africa |
2381741 |
37100000 |
188681000000 |
Andorra |
Europe |
468 |
78115 |
3712000000 |
Angola |
Africa |
1246700 |
20609294 |
100990000000 |
name |
population |
area |
Afghanistan |
25500100 |
652230 |
Algeria |
37100000 |
2381741 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 5. 22. 11:00
2023. 5. 22. 11:00
🗓️ 문제 설명
- Employee 테이블의 id, name, department, managerId는 각각 직원 ID, 직원 이름, 부서명, 관리자 ID를 나타냅니다.
- ID는 기본키입니다.
- managerId가 null이라면 관리자가 없는 직원입니다.
Column name |
Type |
id |
int |
name |
varchar |
department |
varchar |
managerId |
int |
❓문제
- 최소 5명의 부하 직원이 있는 관리자를 조회하는 SQL문을 작성해주세요.
- 문제 예시
id |
name |
department |
managerId |
101 |
John |
A |
None |
102 |
Dan |
A |
101 |
103 |
James |
A |
101 |
104 |
Amy |
A |
101 |
105 |
Anne |
A |
101 |
106 |
Ron |
B |
101 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 5. 19. 10:35
2023. 5. 19. 10:35
🗓️ 문제 설명
- Employee 테이블의 id, name, salary, departmentId는 각각 직원 ID, 직원 이름, 임금, 부서 ID를 나타냅니다.
- Id는 기본키이고 departmentId는 Department 테이블의 외래키입니다.
Column name |
Type |
id |
int |
name |
varchar |
salary |
int |
departmentId |
int |
- Department 테이블의 id, name은 각각 부서 ID, 부서명을 나타냅니다.
- Id는 기본키입니다.
Column name |
Type |
id |
int |
name |
varchar |
❓문제
- 회사의 경영진은 회사의 각 부서에서 가장 많은 돈을 버는 사람을 확인하는 데 관심이 있습니다.
- 부서의 고소득자는 해당 부서의 임금 상위 3위 안에 드는 임금을 받는 직원입니다.
- 부서별 고소득 사원을 찾는 SQL문을 작성해주세요.
- 순서에 상관없이 결과 테이블을 반환해주세요.
- 문제 예시
Employee
id |
name |
salary |
departmentId |
1 |
Joe |
85000 |
1 |
2 |
Henry |
80000 |
2 |
3 |
Sam |
60000 |
2 |
4 |
Max |
90000 |
1 |
5 |
Janet |
69000 |
1 |
6 |
Randy |
85000 |
1 |
7 |
Will |
70000 |
1 |
Department
Department |
Employee |
Salary |
IT |
Max |
90000 |
IT |
Joe |
85000 |
IT |
Randy |
85000 |
IT |
Will |
70000 |
Sales |
Henry |
80000 |
Sales |
Sam |
60000 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 5. 18. 11:06
2023. 5. 18. 11:06
🗓️ 문제 설명
- Orders 테이블의 order_number는 주문 ID를 나타내며, customer_number는 고객 ID를 나타냅니다.
- Orders테이블의 기본키는 order_number입니다.
Column name |
Type |
order_number |
int |
customer_number |
int |
❓문제
- 가장 많은 주문을 한 고객 ID를 찾는 SQL문을 작성해주세요.
- 테스트 케이스는 정확히 한 명의 고객이 다른 고객보다 더 많은 주문을 하도록 생성되었습니다.
- 문제 예시
order_number |
customer_number |
1 |
1 |
2 |
2 |
3 |
3 |
4 |
3 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 5. 16. 11:00
2023. 5. 16. 11:00
🗓️ 문제 설명
- Customer 테이블의 id는 기본키입니다.
- Customer의 id, name, referee_id는 각각 고객 ID, 고객 이름, 추천한 고객의 ID를 나타냅니다.
Column name |
Type |
id |
int |
name |
varchar |
referee_id |
int |
❓문제
- Id가 2인 고객이 추천하지 않은 고객의 이름을 조회하는 SQL문을 작성해주세요.
- 순서에 상관없이 결과 테이블을 반환해주세요.
- 문제 예시
id |
name |
referee_id |
1 |
Will |
null |
2 |
Jane |
null |
3 |
Alex |
2 |
4 |
Bill |
null |
5 |
Zack |
1 |
6 |
Mark |
2 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 5. 15. 10:51
2023. 5. 15. 10:51
🗓️ 문제 설명
- Activity 테이블은 일부 게임의 플레이어 활동을 보여주며, player_id, event_date는 기본키입니다.
- 각 행은 로그하웃하기 전에 로그인하고 여러 게임을 플레이한 플레이어의 기록입니다.
Column name |
Type |
player_id |
int |
device_id |
int |
event_date |
date |
games_played |
int |
❓문제
- 처음 로그인한 날의 다음 날 다시 로그인한 플레이어의 비율을 소수점 둘째 자리에서 반올림하여 조회하는 SQL문을 작성해주세요.
- 첫 로그인 날짜부터 연속 2일 이상 로그인한 플레이어 수를 세고 그 수를 총 플레이어 수로 나누어주세요.
- 문제 예시
player_id |
device_id |
event_date |
games_played |
1 |
2 |
2016-03-01 |
5 |
1 |
2 |
2016-03-02 |
6 |
2 |
3 |
2017-06-25 |
1 |
3 |
1 |
2016-03-02 |
0 |
3 |
4 |
2018-07-03 |
5 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 5. 12. 11:01
2023. 5. 12. 11:01
🗓️ 문제 설명
- Insurance 테이블의 pid는 기본키입니다.
- pid, tiv_2015, tiv_2016, lat, lon는 각각 보험 계약자의 정책 ID, 2015년 총 투자 가치, 2016년 총 투자 가치, 보험계약자 도시의 위도와 경도를 나타냅니다.
Column name |
Type |
pid |
int |
tiv_2015 |
float |
tiv_2016 |
float |
lat |
float |
lon |
float |
❓문제
- 모든 보험 계약자에 대한 2016년의 총 투자 가치 합계를 조회하는 SQL문을 작성해주세요
- 한 명 이상의 다른 보험 계약자와 동일한 2015년 총 투자 가치 값을 가지며, 다른 보험 계약자와 같은 도시에 있지 않는 데이터를 조회해주세요(lat, lon 값은 중복되지 않아야 합니다).
- 결과는 소수 둘째 자리에서 반올림해주세요.
- 문제 예시
pid |
tiv_2015 |
tiv_2016 |
lat |
lon |
1 |
10 |
5 |
10 |
10 |
2 |
20 |
20 |
20 |
20 |
3 |
10 |
30 |
20 |
20 |
4 |
10 |
40 |
40 |
40 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 5. 11. 11:00
2023. 5. 11. 11:00
🗓️ 문제 설명
- Employee 테이블은 empId를 기본키로 가지며, empId, name, supervisor, salary는 각각 직원 ID, 이름, 감독관 ID, 임금을 나타냅니다.
Column name |
Type |
empId |
int |
name |
varchar |
supervisor |
int |
salary |
int |
- Bonus 테이블은 empId를 기본키로 가지며, empId는 employee의 외래키입니다.
- Bonus 테이블의 empId, bonus는 각각 직원 ID, 보너스를 의미합니다.
Column name |
Type |
empId |
int |
bonus |
int |
❓문제
- 1000 이하의 보너스를 받는 직원의 이름과 보너스 금액을 조회하는 SQL을 작성해주세요.
- 문제 예시
Employee
empId |
name |
supervisor |
salary |
3 |
Brad |
null |
4000 |
1 |
John |
3 |
1000 |
2 |
Dan |
3 |
2000 |
4 |
Thomas |
3 |
4000 |
Bonus
name |
bonus |
Brad |
null |
John |
null |
Dan |
500 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 5. 9. 11:00
2023. 5. 9. 11:00
🗓️ 문제 설명
- Activity테이블의 player_id와 event_date는 기본키입니다.
- 데이터는 로그아웃하기 전에 로그인하고 게임을 즐긴 플레이어에 대한 기록입니다.
Column name |
Type |
player_id |
int |
device_id |
int |
event_date |
date |
games_played |
int |
❓문제
- 각 플레이어가 가장 처음 로그인한 기록을 조회하는 SQL문을 작성해주세요.
- 문제 예시
player_id |
device_id |
event_date |
games_played |
1 |
2 |
2016-03-01 |
5 |
1 |
2 |
2016-05-02 |
6 |
2 |
3 |
2017-06-25 |
1 |
3 |
1 |
2016-03-02 |
0 |
3 |
4 |
2018-07-03 |
5 |
player_id |
first_login |
1 |
2016-03-01 |
2 |
2017-06-25 |
3 |
2016-03-02 |
💻 코드
최종 코드
코드 풀이