Closed haein-kim closed 3 years ago
SELECT match_id, team_name, team_rank, SUM(kills) AS team_total_kills
FROM `as-pcs3as_matches_stats`
WHERE team_rank = 1
GROUP BY match_id
여기에 kill 수의 가점방식을 옆에 환산해볼 수 있으면 좋겠다.
sql_input = """
SELECT team_rank, AVG(placement+kills) AS total_points, AVG(placement), AVG(kills)
FROM
(SELECT match_id, team_name, team_rank,
(CASE WHEN team_rank = 1 THEN 10
WHEN team_rank = 2 THEN 6
WHEN team_rank = 3 THEN 5
WHEN team_rank = 4 THEN 4
WHEN team_rank = 5 THEN 3
WHEN team_rank = 6 THEN 2
WHEN team_rank = 7 THEN 1
WHEN team_rank = 8 THEN 1
ELSE 0
END) AS placement,
SUM(kills) AS kills
FROM `as-pcs3as_matches_stats`
GROUP BY match_id, team_name
ORDER BY match_id, team_rank
) points
GROUP BY team_rank
"""
df_rank_avg = pd.read_sql_query(sql_input, conn)
df_rank_avg
Table: tournaments_ranks ⇒ 토너먼트 별 최종 랭크 및 성적 모음
**토너_id | 우승팀 | 랭킹 | total_pts | rank_pts | kill_pts**
USE pubg_esports;
SELECT player_name,
COUNT(*) total_matches,
COUNT(if(map_name='Miramar',map_name,null)) miramar,
COUNT(if(map_name='Erangel',map_name,null)) erangel,
COUNT(if(map_name='Erangel (Remastered)',map_name,null)) erangel_re,
ROUND(AVG(kills), 3) avg_kills,
ROUND(AVG(damage_dealt),2) avg_damages,
ROUND(AVG(team_rank),2) avg_rank
FROM players_summary
GROUP BY player_name
ORDER BY total_matches DESC
프로젝트와 윈윈하는 사이드 프로젝트, SQL 문제 만들기
프로젝트를 하면서, 판다스 혹은 SQL을 반드시 사용하게 되는데요!
그 과정에서 '이미 짠 코드'에 관해서, '문제'로 만들어 보는 걸 제안합니다.
(SQL 테스트의 충격 절대아님)example 알고 싶은 것: 킬 수가 높으면 1등을 할 확률이 높을까?
문제제시: match 마다 1등한 팀과 선수를 보여주고, 해당 매치에서 킬 수로 몇 등을 했는지 보여주는 쿼리를 짜보세요.
이때, 설계대로 짠 쿼리가 알고 싶은 것을 제대로 보여주는가? 다시 생각해볼 수 있습니다!
무리하지 않는 선에서, 생각나시면 1-2분 정도 내어서 여기에 정리해주시면 두고두고 도움이 될 거 같습니다😀