[英]SQL Query value divided by the max(value)
我为自己感到羞耻,因为我不能正确地做这个问题......我有一张这样的桌子
nom | code_geo | valeur | indice
-------+----------+--------+--------------------
AISNE | 02 | 81573 | 0.05
SOMME | 80 | 79520 | 0.03
OISE | 60 | 70004 | 0.09
我需要做的是将每个“indice”除以max(indice)。 那是:
nom | code_geo | valeur | indice
-------+----------+--------+--------------------
AISNE | 02 | 81573 | 0.05 / 0.09
SOMME | 80 | 79520 | 0.03 / 0.09
OISE | 60 | 70004 | 0.09 / 0.09
我的第一个猜测是:
SELECT nom,code_geo,valeur,indice/(SELECT max(indice) FROM blablabla) FROM blablabla;
我的问题是“blablabla”实际上是一个带有6个参数的函数,我不想在子查询上重复FROM子句...
还有另一种(更好的?)方法吗? 或者我应该看另一种方式
Thx提前
你解决方案看起来不错 由于子查询与外部查询无关,因此DBMS应仅评估该子查询一次。
我相信Postgresql允许CTE。
Select * into yourtable from blablabla
WITH T2(MaxNumber) as
(
select MAX(indice) as MaxNumber from yourtable
)
update t1
set t1.indice=t1.indice / T2.MaxNumber
from yourtable t1, T2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.