- 문제에 사용되는 table 구조
- table 칼럼 설명
구분
|
상세
|
schema
|
logid
|
로그id
|
int
|
ip_addr
|
ip주소
|
string
|
date
|
날짜, yyyy-mm-dd
|
string
|
game_account_id
|
게임계정id
|
string
|
game_actor_id
|
게임캐릭터id
|
int
|
level
|
현재레벨
|
int
|
exp
|
현재경험치
|
int
|
serverno
|
서버넘버
|
int
|
zone_id
|
지역넘버
|
int
|
etc_num1
|
파티id
|
int
|
etc_num2
|
파티원수
|
int
|
etc_str1
|
아이템 획득경로
|
string
|
etc_num3
|
아이템 획득량
|
int
|
etc_str2
|
아이템 이름
|
string
|
1. date 컬럼이 2023-01-01 보다 큰 날짜의 game_account_id, game_actor_id, serverno를 추출해주세요.
SELECT game_account_id, game_actor_id, serverno
FROM users
where date > '2023-01-01'
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 in ('레벨업 패키지','시즌패스')
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"
when level between 91 and 100 then "91~100Lv" end levelgroup,
date
FROM users
order by date desc
4. date 컬럼을 yyyy-mm 형식의 월 형태로 바꾸고, 컬럼이름을 m 으로 지정해주세요.
game_account_id, game_actor_id 를 추출하되, 월을 기준으로 오름차순, 월이 같을 경우 game_actor_id 를 내림차순으로 정렬해주세요.
SELECT date_format(date,'%Y-%m') m,
game_account_id,
game_actor_id
FROM users
order by 1, 3 desc
'문제풀이 > 스파르타 - sql 문제' 카테고리의 다른 글
[SQL] 데이터와 친해지는 SQL | 3회차 숙제 (0) | 2024.06.28 |
---|---|
[SQL] 데이터와 친해지는 SQL | 2회차 숙제 (0) | 2024.06.27 |
[사전캠프] SQL 과제 | Lv3. 이용자의 포인트 조회하기 (0) | 2024.06.26 |
[사전캠프] SQL 과제 | Lv2. 날짜별 획득포인트 조회하기 (0) | 2024.06.26 |
[사전캠프] SQL 연습문제(7) (0) | 2024.06.26 |