해결된 질문
작성
·
22
0
안녕하세요 카일님, 6-5. 데이터 결과 검증 예시 강의 중 아래 쿼리에서 total_battle_count 와 win_ratio 를 각각 구할때 COUNT(battle_id) 와 COUNT(DISTINCT battle_id) 로 쓰신 이유가 궁금합니다.
무엇이 됐건 둘은 통일되어야 하는게 아닌지, total_battle_count 를 구할때도 엄밀하게는 DISTINCT 를 썼어야 하는게 아닌지 궁금합니다 !
SELECT
trainer_id,
COUNTIF(battle_result = 'Win') AS win_count,
COUNT(battle_id) AS total_battle_count,
COUNTIF(battle_result = 'Win') / COUNT(DISTINCT battle_id) AS win_ratio
FROM battle_with_result
GROUP BY
trainer_id
답변 1
0
안녕하세요. 말씀하신대로 둘 다 통일하는게 더 좋습니다.
저 쿼리를 작성하는 과정에 생략되어 있는 것이 있는데, 최초엔 COUNT(battle_id) AS total_battle_count와 COUNT(DISTINCT battle_id) AS total_battle_count2를 해서 두개가 같은지 확인하는 과정이 있었는데 그 후에 total_battle_count2을 win_ratio에 사용해서 그렇네요.
정리하면 DISTINCT을 사용하나 안하나 값이 동일하다고 확인하다가 쿼리를 작성하다가 생긴 이슈입니다. 저도 의도를 하지 않았던 부분이라 이제 인지했네요
6-5 검증 파트의 핵심은 데이터 결과를 검증하는 흐름이므로 어떻게 검증하는지를 중점적으로 이해하시면 될 것 같아요
아하 그렇군요 ! 빠르게 답변주셔서 감사합니다 .. !