반응형
sql 쿼리를 사용하여 ratio를 계산하는 방법은?
아래와 같은 표가 있습니다.
ID Name Department Gender
1 Crib MA MALE
2 Lucy Bsc FEMALE
3 Phil Bcom MALE
4 Ane MA FEMALE
저는 이런 기록이 1000줄이나 있어요.전체 학생의 성별(MALE & FEMAL) 열에서 비율을 구하고자 합니다.
이 작업을 수행하려면 쿼리가 필요합니다.
MySQL 5.5.32 스키마 설정:
CREATE TABLE table1
(`ID` int, `Name` varchar(4), `Department` varchar(4), `Gender` varchar(6))
;
INSERT INTO table1
(`ID`, `Name`, `Department`, `Gender`)
VALUES
(1, 'Crib', 'MA', 'MALE'),
(2, 'Lucy', 'Bsc', 'FEMALE'),
(3, 'Phil', 'Bcom', 'MALE'),
(4, 'Ane', 'MA', 'FEMALE')
;
쿼리 1:
SELECT sum(case when `Gender` = 'MALE' then 1 else 0 end)/count(*) as male_ratio,
sum(case when `Gender` = 'FEMALE' then 1 else 0 end)/count(*) as female_ratio
FROM table1
결과:
| MALE_RATIO | FEMALE_RATIO |
|------------|--------------|
| 0.5 | 0.5 |
이런 거 먹어봐요.
select sum(case when gender = 'MALE' then 1 else 0 end) / count(*) * 100 as perc_male,
sum(case when gender = 'FEMALE' then 1 else 0 end) / count(*) * 100 as perc_female
from students
이것은 실제 비율을 제공하며 MySQL 및 SQL Server에서 수정을 거의 또는 전혀 하지 않고 작동해야 합니다.출연자 설명문을 조금 수정해야 할 수도 있습니다. MySQL이 녹슬어서 약간 다르게 처리할 수도 있을 것 같습니다.
SELECT
(CAST((SELECT COUNT(*) FROM tblName WHERE Gender='MALE') AS FLOAT) /
CAST((SELECT COUNT(*) FROM tblName WHERE Gender='FEMALE') AS FLOAT))
AS ratioMaleFemale;
아주 가깝네요.
select (select count(*)
from table where gender='MALE' )/count(*)*100 as percentage_male,
(select count(*)
from table where gender='FEMALE' )/count(*)*100 as percentage_female
from table;
언급URL : https://stackoverflow.com/questions/27253333/how-to-calculate-ratio-using-sql-query
반응형
'programing' 카테고리의 다른 글
concat 함수에 인수 사이에 공백 삽입 (0) | 2023.11.04 |
---|---|
CSS를 사용하여 절대 디브를 수평으로 센터링하는 방법? (0) | 2023.11.04 |
부트스트랩 회전목마 이미지가 제대로 정렬되지 않음 (0) | 2023.11.04 |
WebView에서 뒤로 가기 버튼을 누른 경우 이전 페이지로 돌아가는 방법은 무엇입니까? (0) | 2023.11.04 |
만약(x=0)이면 C에서 무엇을 의미합니까? (0) | 2023.11.04 |