내배캠_Data_3기/TIL

240626(1)_SQL, 문제풀이, SQL특강 1회차, CASE WHEN, IF

케일라(Data_3기) 2024. 6. 26. 19:00

[SQL] 데이터와 친해지는 SQL - 1회차

문제2

  • 조건1) level 컬럼이 10 초과이고
  • 조건2) serverno컬럼이 1이 아니며
  • 조건3) 아이템이름컬럼이 레벨업 패키지 또는 시즌패스이고
  • 조건4) 아이템 획득경로가 상점에서 구매한 경우의 date, ip_addr, exp, zone_id 를 추출하고 결과값을 date 기준 내림차순으로 정렬하여 추출해주세요.
더보기

select `date`, ip_addr, `exp`, zone_id

from users

where (`level`>10) and (serverno<>1) and

           (etc_str2='레벨업 패키지' or etc_str2='시즌패스')and (etc_str1='상점에서 구매')

order by date desc

 

문제3

  • case when 구문을 사용하여 레벨구간을 아래와 같이 구분해주시고, 컬럼이름을 ‘levelgroup’ 으로 설정해주세요. game_actor_id, level, levelgroup, date컬럼을 추출해주시고, date 를 기준으로 내림차순 정렬해주세요. 결과값은 아래와 같아야 합니다. (전체결과 중 일부)
  • 레벨구간

        1~10Lv 이하  11~20Lv 이하  21~30Lv 이하  31~40Lv 이하  41~50Lv 이하

        51~60Lv 이하  61~70Lv 이하  71~80Lv 이하  81~90Lv 이하  91~100Lv

더보기

select game_actor_id, level,

case when level between 1 and 10 then '1~10Lv'

when level between 11 and 20 then '11~20Lv'

when level between 21 and 30 then '21~30Lv'

when level between 31 and 40 then '31~40Lv'

when level between 41 and 50 then '41~50Lv'

when level between 51 and 60 then '51~60Lv'

when level between 61 and 70 then '61~70Lv'

when level between 71 and 80 then '71~80Lv'

when level between 81 and 90 then '81~90Lv'

else '91~100Lv'

end as levelgroup, `date`

from users

order by date desc

 

문제4

  • date 컬럼을 yyyy-mm 형식의 월 형태로 바꾸고, 컬럼 이름을 m으로 지정해주세요.
  • game_account_id, game_actor_id 를 추출하되, 월을 기준으로 오름차순, 월이 같을 경우 game_actor_id 를 내림차순으로 정렬해주세요.
더보기

select substr(date, 1,7) m, game_account_id, game_actor_id

from users

order by m asc, 3 desc

#3= game_actor_id

 

 


[KDC] 엑셀보다 쉽고 빠른 SQL - 3주차

 

[실습]서울 지역의 음식 타입별 평균 음식 주문금액 구하기(출력 : '서울', '타입', '평균 금액')