반응형

🗓️ 문제 설명

  • 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
  • 출력 예시
class
Math

 

💻 코드

최종 코드

  • 실행 결과

 

코드 풀이

 

반응형
반응형

🗓️ 문제 설명

  • 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

 

💻 코드

최종 코드

  • 실행 결과

 

코드 풀이

 

반응형
반응형

🗓️ 문제 설명

  • 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
  • 출력 예시
name
John

 

💻 코드

최종 코드

  • 실행 결과

 

코드 풀이

 

반응형
반응형

🗓️ 문제 설명

  • 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

id name
1 IT
2 Sales
  • 출력 예시
Department Employee Salary
IT Max 90000
IT Joe 85000
IT Randy 85000
IT Will 70000
Sales Henry 80000
Sales Sam 60000

 

💻 코드

최종 코드

  • 실행 결과

 

코드 풀이

 

반응형
반응형

🗓️ 문제 설명

  • 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
  • 출력 예시
customer_number
3

 

💻 코드

최종 코드

  • 실행 결과

 

코드 풀이

 

반응형
반응형

🗓️ 문제 설명

  • 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
  • 출력 예시
name
Will
Jane
Bill
Zack

 

💻 코드

최종 코드

  • 실행 결과

코드 풀이

 

반응형
반응형

🗓️ 문제 설명

  • 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
  • 출력 예시
fraction
0.33

 

💻 코드

최종 코드

  • 실행 결과

 

코드 풀이

 

반응형
반응형

🗓️ 문제 설명

  • 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
  • 출력 예시
tiv_2016
45.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

empId bonus
2 500
4 2000
  • 출력 예시
name bonus
Brad null
John null
Dan 500

 

💻 코드

최종 코드

  • 실행 결과

 

코드 풀이

 

반응형
반응형

🗓️ 문제 설명

  • 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

 

💻 코드

최종 코드

  • 실행 결과

 

코드 풀이

 

반응형

+ Recent posts