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