I have a schema like this returned from a query
+------------+-------------+------------+---------+------+
| dt | country | city | gender | cnt |
+------------+-------------+------------+---------+------+
| 2016-07-06 | algeria | a1 | female | 187 |
| 2016-07-06 | algeria | a1 | gents | 1045 |
| 2016-07-06 | algeria | a2 | female | 212 |
| 2016-07-06 | algeria | a2 | gents | 775 |
+------------+-------------+------------+---------+------+
query which results the above query :
select DATE(created) as dt,country, city, gender, count(gender) as cnt
from my_table
where created>'2016-07-06 00:00:00'
group by dt,country,city, gender
expected result (female ratio in last column on per county per city basis)
+------------+-------------+------------+----------+
| dt | country | city | f_ratio |
+------------+-------------+------------+----------+
| 2016-07-06 | algeria | a1 | 0.151 |
| 2016-07-06 | algeria | a2 | 0.214 |
+------------+-------------+------------+----------+
i tried this :
select dt as date, (cnt / sum(cnt) * 100) as f_ratio from (
select DATE(created) as dt, gender, count(gender) as cnt
from count_table
where created>'2016-07-06 00:00:00'
group by dt, gender
) as inner_t
group by dt;
but it fails miserably when it comes to calculating percentage on the basis of 2 columns.
Can someone please help?