按城市分组
我正在拼命拼命; 我正在研究意大利统计局(ISTAT)有关我们地区人口的数据; 他们给我每个城市和每个年龄段(0,1,2等)的数据,我需要为每个城市分10年课程(0-9,10-19等)。 前几行的示例:
| ID | CodiceComune | Eta | Celibi | Coniugati | Divorziati | Vedovi | TotMaschi | Nubili | Coniugate | Divorziate | Vedove | TotFemmine | +----+--------------+-----+--------+-----------+------------+--------+-----------+--------+-----------+------------+--------+------------+ | 1 | 42001 | 0 | 30 | 0 | 0 | 0 | 30 | 22 | 0 | 0 | 0 | 22 | | 2 | 42001 | 1 | 22 | 0 | 0 | 0 | 22 | 22 | 0 | 0 | 0 | 22 | | 3 | 42001 | 2 | 27 | 0 | 0 | 0 | 27 | 21 | 0 | 0 | 0 | 21 | | 4 | 42001 | 3 | 23 | 0 | 0 | 0 | 23 | 26 | 0 | 0 | 0 | 26 | | 5 | 42001 | 4 | 33 | 0 | 0 | 0 | 33 | 24 | 0 | 0 | 0 | 24
CodiceComune
是分配给每个城市的ISTAT代码, Eta
是年龄(从0到100), TotMaschi
是那个城市中那个年龄的男性总数, TotMaschi
是那个年龄的女性总数市; 你不需要翻译其他列,因为我不需要这些数据。
我想得到的是一个包含“每个城市”男性总数和每个年龄组女性总人数的观点,即42001
城市的男性人数在0
到9
岁之间,等等。
为了logging,我已经在这里尝试了解决scheme,但它不符合我的目的,我不能适应链接中的代码,以我的情况; 当然,我知道我可以在Excel中做到这一点,但是这将会耗费我一生的时间,因为桌子上有24000多行。
例如:
SELECT CodiceComune , CONCAT(FLOOR((Eta+0.5)/10)*10,'-',(CEILING((Eta+0.5)/10)*10)-1) Age_group , SUM(TotMaschi) m , SUM(TotFemmine) f FROM my_table GROUP BY CodiceComune , FLOOR(Eta/10);
这将计算MySQL中10年范围内的男性人数
SELECT COUNT(TotMaschi) FROM tablename WHERE CodiceComune = 42001 AND eta IN (0,1,2,3,4,5,6,7,8,9)
这是一个TotMaschi和totFemmine的样本…每个CodiceComune在10年的age_range中的人数总和。
select CodiceComune, sum(totMaschi), sum(toyFemmine), eta div 10 as age_range from tablename group by CodiceComune, age_range;