YS's develop story
MySQL ) COUNT문 활용하기 , MySQL 퍼센트 계산하기 본문
먼저 COUNT문을 정리해 봤습니다
아래와 같은 ThemeReview라는 테이블이 있습니다.
아래와 같은 쿼리문을 통해 userId가 1인 사용자가 작성한 리뷰가 몇 개인지,
이 사용자가 작성한 리뷰 중 escapeSuccess가 Y인 리뷰가 몇 개인지 확인할 수 있습니다.
select count(*) as reviewCount,
count(case when escapeSuccess = 'Y' then 1 end) as 'successCount'
from ThemeReview where userId = '1';
아래와 같이 여러 개의 조건을 만족할 때만 개수를 세도록 할 수도 있습니다.
useHintCount가 0이고 escapeSuccess가 Y일 때만 개수를 세는 것 이죠
select count(*) as reviewCount,
count(case when escapeSuccess = 'Y' then 1 end) as 'successCount',
count(case when useHintCount= 0 and escapeSuccess = 'Y' then 1 end) as 'successCountWithNoHint'
from ThemeReview where userId = '1';
이제 퍼센트를 계산하는 쿼리문을 작성해 봅시다.
위에서 작성한 count쿼리를 활용하고, round문을 활용해서 퍼센트를 구하는 쿼리입니다.
결과를 보면 퍼센트가 각각 75 50인 것을 확인할 수 있습니다.
select count(*) as reviewCount,
count(case when escapeSuccess = 'Y' then 1 end) as 'successCount',
count(case when useHintCount= 0 and escapeSuccess = 'Y' then 1 end) as 'successCountWithNoHint',
concat(round( count(case when escapeSuccess = 'Y' then 1 end) / count(*)*100,2),'%') AS successPercentage,
concat(round( count(case when useHintCount= 0 and escapeSuccess = 'Y' then 1 end) / count(*)*100,2),'%') AS successPercentageWithNoHint
from ThemeReview where userId = '1';
'Database > MySQL' 카테고리의 다른 글
MySQL ) case when 활용하기 (0) | 2021.01.30 |
---|---|
MySQL 에러 ) 23000 1052 Column in field list is ambiguous (0) | 2021.01.29 |
MySQL ) DELETE 문 활용 (0) | 2021.01.28 |
MySQL ) UPDATE 문 활용하기 (0) | 2021.01.28 |
MySQL ) 위도 경도를 활용하여 거리 계산하는 구문 작성하기 (2) | 2021.01.28 |
Comments