【发布时间】:2017-06-02 18:49:37
【问题描述】:
我有一个反复出现的问题,我想多次使用我在选择查询中计算的值。这是一个例子
SELECT
complicated_function(x) as foo,
another_complicated_function(y) as bar,
complicated_function(x)/another_complicated_function(y) as foo_bar_rate
FROM my_table;
编写此查询的最简单方法是什么?理想情况下,我想写
SELECT
complicated_function(x) as foo
another_complicated_function(y) as bar,
foo/bar as foo_bar_rate
FROM my_table;
这个问题不是关于正在计算的特定值,而是关于如何以更简单的方式编写这个查询,更容易维护。
【问题讨论】:
-
请提供一个表定义(
CREATE TABLE语句)显示数据类型和约束以及您的 Postgres 版本。并解释你在准确地计算什么。可能有一个更简单/更快的解决方案。而且至少有一个挥之不去的错误。 -
这个问题与我正在计算的具体值无关。我重写了查询以反映这一点。我正在尝试编写更好更易于维护的 SQL。我正在使用 PostgreSQL 9.6.2
标签: sql postgresql subquery common-table-expression divide-by-zero