0

我想知道计算后如何使用 CASE。基本上我想计算一个值,如果该值返回大于 1,我想将其设置为 1。

这是我到目前为止得到的:

SELECT (HSDIPLOMA + BACHELORDEGREE) / (SELECT AVG(HSDIPLOMA + BACHELORDEGREE) FROM EDUCATIONPROFILE) as res, case when res > 1 then 1 else res END AS result FROM EDUCATIONPROFILE ORDER BY cid ASC

但是,我收到一个无效的标识符错误“RES”:无效的标识符。我的错误在哪里?提前致谢。

4

1 回答 1

1

您可以使用窗口函数和LEAST()

SELECT LEAST( (HSDIPLOMA + BACHELORDEGREE) / AVG(HSDIPLOMA + BACHELORDEGREE) OVER (),
              1
            ) as res
FROM EDUCATIONPROFILE
ORDER BY cid ASC
于 2020-04-17T00:23:41.487 回答