首页 > 数据库 > mysql教程 > 如何在 PostgreSQL 中使用同一查询的计算列?

如何在 PostgreSQL 中使用同一查询的计算列?

Linda Hamilton
发布: 2025-01-14 07:29:47
原创
620 人浏览过

How Can I Use Calculated Columns from the Same Query in PostgreSQL?

在PostgreSQL中使用同一查询中的计算列

PostgreSQL不允许直接在同一SELECT语句中使用别名进行计算。 例如,以下SQL语句会报错:

<code class="language-sql">SELECT cost_1, quantity_1, cost_2, quantity_2, 
(cost_1 * quantity_1) AS total_1,
(cost_2 * quantity_2) AS total_2,
(total_1 + total_2) AS total_3
FROM data;</code>
登录后复制

这是因为PostgreSQL在计算total_3时,total_1total_2尚未被定义。

解决方法是使用子查询(派生表):

<code class="language-sql">SELECT cost_1,
       quantity_1,
       cost_2,
       quantity_2,
       total_1 + total_2 AS total_3
FROM (
    SELECT cost_1, 
           quantity_1, 
           cost_2, 
           quantity_2, 
           (cost_1 * quantity_1) AS total_1,
           (cost_2 * quantity_2) AS total_2
    FROM data
) t;</code>
登录后复制

通过创建子查询t,我们将total_1total_2在外部SELECT语句中定义为可用的列。这种方法不会带来性能损失。 外部查询引用内部查询的结果集,从而可以正确计算total_3

以上是如何在 PostgreSQL 中使用同一查询的计算列?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板