Postgresql计算字段的上限

时间:2015-02-19 14:44:14

标签: postgresql calculated-columns calculated-field

有没有办法设置已经在CASE子句中的计算(计算字段)的上限?我正在计算百分比,显然,不希望最高值超过'100'。

如果它已经不在CASE条款中,我会创建类似'计算时的情况> 100.0然后100其他计算结束需要_percent'但我现在不能这样做..

感谢您的任何建议。

2 个答案:

答案 0 :(得分:1)

我认为使用least函数将是最佳选择。

select least((case when ...), 100) from ...

答案 1 :(得分:0)

有一种方法可以通过创建外部查询来设置计算字段的上限。看看下面的例子。内部查询将是您当前的查询。然后只需在其上创建一个外部查询,并使用WHERE子句将其限制为< = 1.

SELECT 
z.id,
z.name,
z.percent

FROM(

SELECT
id,
name,
CASE WHEN id = 2 THEN sales/SUM(sales) ELSE NULL END AS percent

FROM 
users_table

) AS z

WHERE z.percent <= 1