[TIL] 4-6주차 코딩 스터디 과제

bmn.kim·2024년 9월 4일
0

데이터 배우기_SQL

목록 보기
6/24

아래와 같은 sparta_students(학생) 테이블이 있습니다.

idnametrackgradeenrollment_year
1르탄이Node.jsA2023
2배캠이SpringB2022
3구구이UnityC2021
4이션이Node.jsB2022
  1. sparta_students 테이블에서 모든 학생의 이름(name)과 트랙(track)을 선택하는 쿼리를 작성해주세요!
    select name,
    track
    from sparta_students

  2. sparta_students 테이블에서 Unity 트랙 소속이 아닌 학생들을 선택하는 쿼리를 작성해주세요!
    select *
    from sparta_students
    where track not in 'Unity'

  3. sparta_students 테이블에서 입학년도(enrollment_year)가 2021년인 학생과 2023년인 학생을 선택하는 쿼리를 작성해주세요!
    select *
    from sparta_students
    where enrollment_year = 2021 or enrollment_year = 2023

  4. sparta_students 테이블에서 Node.js 트랙 소속이고 학점이 ‘A’인 학생의 입학년도를 선택하는 쿼리를 작성해주세요!
    select enrollment_year
    from sparta_students
    where track = 'Node.js' and grade = 'A'

공부를 한 결과를 점검하기 위해 팀 프로젝트를 수행해야 합니다! 이제, 아래와 같은 team_projects(프로젝트) 테이블이 있습니다.

idnamestart_dateend_dateaws_cost
1일조2023-01-012023-01-0730000
2꿈꾸는이조2023-03-152023-03-2250000
3보람삼조2023-11-202023-11-3080000
4사조참치2022-07-012022-07-3075000
  1. team_projects 테이블에서 AWS 예산(aws_cost)이 40000 이상 들어간 프로젝트들의 이름을 선택하는 쿼리를 작성해주세요!
    select name
    from team_projects
    where aws_cost > 40000

  2. team_projects 테이블에서 2022년에 시작된 프로젝트를 선택하는 쿼리를 작성해주세요! 단, start_date < ‘2023-01-01’ 조건을 사용하지 말고 쿼리를 작성해주세요!
    select *
    from team_projects
    where year(start_date) = '2022'

  3. team_projects 테이블에서 현재 진행중인 프로젝트를 선택하는 쿼리를 작성해주세요. 단, 지금 시점의 날짜를 하드코딩해서 쿼리하지 말아주세요!
    select *
    from team_projects
    where end_date > curdate()

  4. team_projects 테이블에서 각 프로젝트의 지속 기간을 일 수로 계산하는 쿼리를 작성해주세요!
    select (end_date - start_date) + 1 as "지속기간"
    from team_projects

아래와 같은 lol_users(LOL 유저 테이블)이 있습니다.

idnameregionratingjoin_date
1르탄이한국13002019-06-15
2배캠이미국15002020-09-01
3구구이한국14002021-01-07
4이션이미국13502019-11-15
  1. lol_users 테이블에서 각 유저의 레이팅(rating) 순위를 계산하는 쿼리를 작성해주세요! 전체 지역(region) 기준이고 순위는 레이팅이 높을수록 높아야해요. (e.g. rating 1400 유저의 순위 > rating 1350 유저의 순위)
    select id,
    name,
    region,
    rating,
    join_date,
    rank() over(order by rating desc) as 'rank'
    from lol_users
  1. lol_users 테이블에서 가장 늦게 게임을 시작한(join_date) 유저의 이름을 선택하는 쿼리를 작성해주세요
    select name
    from lol_users
    order by join_date desc
    limit 1

  2. lol_users 테이블에서 지역별로 레이팅이 높은 순으로 유저들을 정렬해서 나열하는 쿼리를 작성해주세요!
    select *
    from lol_users
    order by region, rating desc

  3. lol_users 테이블에서 지역별로 평균 레이팅을 계산하는 쿼리를 작성해주세요!
    select region,
    avg(rating) avg_rating
    from lol_users
    group by 1

profile
문과생의 sql 배우기 많은 관심 부탁드립니다

0개의 댓글