How to calculate ratio using sql query?

mysql, oracle, sql-server

Solution

SQL Fiddle

MySQL 5.5.32 Schema Setup:

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')
;

Query 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

Results:

| MALE_RATIO | FEMALE_RATIO |
|------------|--------------|
|        0.5 |          0.5 |

Problem

I have a table like below: ``` ID Name Department Gender 1 Crib MA MALE 2 Lucy Bsc FEMALE 3 Phil Bcom MALE 4 Ane MA FEMALE ``` I have 1000 row of records like this. I want to find the ratio from column Gender( MALE & FEMALE) of all students. I need a query to perform this.

Original source