为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法减少一个百分比的值,并增加同一个表中的其他值而不选择1乘1

有没有办法减少一个百分比的值,并增加同一个表中的其他值而不选择1乘1

炎炎设计 2019-04-18 14:11:25
我需要帮助构建一个SQL查询,我会发布我的作业,解释起来有点棘手......所以你可以更好地了解我的问题:将主要城镇的人口增加1%,代表居民迁移到主要城镇。例如:伦敦市和自治市(使用谷歌翻译,对不起,如果有一些错误):60万居民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---------| LondonMuni1---------------------------|50k-----------| LondonMuni2---------------------------|80k-----------| LondonMuni3---------------------------|70k-----------| LondonMuni4---------------------------|100k---------| London那么,有没有办法改变首席城市居民百分比并改变市政当局而不逐一选择?我在考虑这样的事情:set tab_municipalities update London=(London*1.02);我的问题来到这里......我如何“扩散”每个市镇的主要城镇的增量,减少他们的居民?对不起,如果我写了所有这些细节但我想更清楚我必须做什么...我需要在java项目中传递这个查询。谢谢你的帮助,抱歉我的英语不好。
查看完整描述

2 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

由于伦敦城市在这个例子中占总人口的一半,我们可以简单地为城市增加2%,并直接从所有其他行中删除2%(不使用需要分配的一些总和)。

更新时使用CASE

UPDATE tab_municipalities 
SET Inhabitants = CASE WHEN Municipality_description = 'London' THEN Inhabitants * 1.02
                  ELSE Inhabitants * 0.98
                  ENDWHERE Province = 'London'


查看完整回答
反对 回复 2019-05-15
  • 2 回答
  • 0 关注
  • 518 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信