mysql-用于计算性别百分比的查询

mysql-用于计算性别百分比的查询,mysql,sql,Mysql,Sql,在下表中,我需要基于计数的前2个城市。还需要表中给出的两个城市的纬度、长度。男性百分比,fem百分比单独计算 +-------+---------+--------+-----+------+ | name | city | gender | lat | long | +-------+---------+--------+-----+------+ | jon | nyc | m | 40 | 74 | | kat | dallas | f

在下表中,我需要基于计数的前2个城市。还需要表中给出的两个城市的纬度、长度。男性百分比,fem百分比单独计算

+-------+---------+--------+-----+------+
| name  | city    | gender | lat | long |
+-------+---------+--------+-----+------+
| jon   | nyc     | m      | 40  | 74   |
| kat   | dallas  | f      | 32  | 96   |
| kay   | la      | m      | 34  | 118  |
| jim   | chicago | f      | 41  | 87   |
| joy   | nyc     | f      | 40  | 74   |
| kelly | dallas  | f      | 32  | 96   |
| lind  | chicago | m      | 41  | 87   |
| tyson | nyc     | m      | 40  | 74   |
| bush  | dallas  | f      | 32  | 96   |
| will  | chicago | m      | 41  | 87   |
| sony  | la      | f      | 34  | 118  |
| graph | la      | f      | 34  | 118  |
| mike  | la      | m      | 34  | 118  |
| pele  | chicago | m      | 41  | 87   |
| mony  | la      | f      | 34  | 118  |
+-------+---------+--------+-----+------+
期望输出:

+---------+-----+------+-----------+----------+
| city    | lat | long | male_perc | fem_perc |
+---------+-----+------+-----------+----------+
| la      | 34  | 118  | 40        | 60       |
| chicago | 41  | 87   | 75        | 25       |
+---------+-----+------+-----------+----------+
选择城市,
拉特,
长的
100*总和(当性别='m'时为1,否则为0结束)/计数(*)男性,
100*总和(如果性别='f'然后1其他0结束)/计数(*)fem_perc,
来自城市
按城市、拉特、朗分组
按计数排序(*)说明
限制2

显示男性perc和女性百分比为100。。这也是我只需要前2名城市的计数。得到所需的输出。谢谢
select t.city, lat, long, 
100*m_cnt/(m_cnt+f_cnt) as male_perc,
100*f_cnt/(m_cnt+f_cnt) as female_perc
from (
select city,
sum(case when gender = 'm' then 1 else 0) as m_cnt,
sum(case when gender = 'f' then 1 else 0) as f_cnt 
from tablename group by city
) a join tablename t on
where a.city = t.city