有没有办法设置已经在CASE子句中的计算(计算字段)的上限?我正在计算百分比,显然,不希望最高值超过'100'。
如果它已经不在CASE条款中,我会创建类似'计算时的情况> 100.0然后100其他计算结束需要_percent'但我现在不能这样做..
感谢您的任何建议。
答案 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