SQL 查询值除以 max(value)
我为自己感到羞耻,因为我无法正确执行此查询...我有一个像这样的表,
nom | code_geo | valeur | indice
-------+----------+--------+--------------------
AISNE | 02 | 81573 | 0.05
SOMME | 80 | 79520 | 0.03
OISE | 60 | 70004 | 0.09
我需要做的是将每个“索引”除以最大值(索引)。那是:
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 子句...
是否有另一种(更好?)的方法来做到这一点?或者我应该另眼相看,
谢谢
I'm ashamed of myself 'cause i can't do this query properly... I have a table like this
nom | code_geo | valeur | indice
-------+----------+--------+--------------------
AISNE | 02 | 81573 | 0.05
SOMME | 80 | 79520 | 0.03
OISE | 60 | 70004 | 0.09
what i need to do is divide each "indice" by the max(indice). That is:
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
my first guess is:
SELECT nom,code_geo,valeur,indice/(SELECT max(indice) FROM blablabla) FROM blablabla;
my problem is that "blablabla" is actually a function with 6 parameter and i don't want to repeat the FROM clause on the subquery...
Is there another (better?) way to do this? or should i look the other way
Thx in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你的解决方案看起来不错。由于子查询与外部查询不相关,因此 DBMS 应该只评估该子查询一次。
You solution looks fine. Since the subquery is not correlated to the outer query, the DBMS should evaluate that subquery only once.
我相信 Postgresql 允许 CTE。
I believe Postgresql allows CTE.