我需要帮助构建一个 SQL 查询,我会发布我的作业,解释起来有点棘手......所以你可以更好地了解我的问题是什么:
将主要城镇的人口增加 1%,代表从城市迁移到主要城镇的居民。 示例:
伦敦市(使用谷歌翻译,如有错误请见谅):600000居民
London city: 300000 inh.
Municipality1:50000 inh
Municipality1:80000 inh
Municipality1:70000 inh
Municipality1:100000 inh
城市吸入量增加 2%
London city: 306000 inh.
Municipality1:49000 inh
Municipality1:78400 inh
Municipality1:68600 inh
Municipality1:98000 inh
我的数据库有这张表 tab_municipalities.
**Municipality_description**|**Inhabitants**| **Province**
London-------------------------|300k---------| London
Muni1---------------------------|50k-----------| London
Muni2---------------------------|80k-----------| London
Muni3---------------------------|70k-----------| London
Muni4---------------------------|100k---------| London
那么,有没有办法不用一一选择就可以改变 Chief city 的居民百分比和改变 Municipalities?
我在想这样的事情:
set tab_municipalities update London=(London*1.02);
我的问题来了...我如何将主要城镇的增量“散布”到每个自治市,从而减少其居民?抱歉,如果我写了所有这些细节,但我想更清楚地了解我必须做什么...我需要在 Java 项目中传输此查询。
感谢您的帮助,抱歉我的英语不好。
最佳答案
由于在此示例中伦敦市包含总人口的一半,我们可以简单地为该城市添加 2%,并直接从所有其他行中删除 2%(无需使用一些需要分配的总和)。
更新时使用CASE
UPDATE tab_municipalities
SET Inhabitants = CASE WHEN Municipality_description = 'London' THEN Inhabitants * 1.02
ELSE Inhabitants * 0.98
END
WHERE Province = 'London'
关于java - 有没有办法在不选择 1 乘 1 的情况下按百分比减少一个值并增加同一个表中的其他值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56111195/