我需要取一个函数的最小值,如果它放在一个0 virtal列上的min值,如果没有,则放置1.
SELECT ID, Name, (X + Y) AS TOTAL, MIN(TOTAL) AS MINVALUE FROM TABLE
实施例
ID Name TOTAL MINVALUE
1 item 22 0
1 item 33 1
1 item 50 1
2 item2 200 1
2 item2 30 0
答案 0 :(得分:3)
您可以使用窗口函数和case
:
select id, name, (x + y) as total,
(case when (x + y) = min(x + y) over (partition by id)
then 0 else 1
end) as IsNotMinValue
from t;
我通常遵循Unix惯例“0”为假,“1”(实际上不是“0”)为真。因此,我将旗帜命名为IsNotMinValue
,因为这就是我解释它的方式。