我需要在select语句中添加新列,该语句包含所有记录中的最大年份(存储为文本),然后将其标记为CY / PY。餐桌上总是只有两年。

 year    value
 2019    value1
 2019    value2
 2018    value3

到目前为止,我尝试了此操作,但它仅返回该行的max,而不返回整个列。
 select year, value, IIF(year=MAX(year), 'CY', 'PY') AS "CY/PY" from table

预期:
year    value     CY/PY
2019    value1    CY
2019    value2    CY
2018    value3    PY

最佳答案

我想你想要一个窗口函数:

select year, value,
       (case when year = MAX(year) over () then 'CY' else 'PY' end) AS "CY/PY"
from table

关于sql - 列中所有值到新列的最大值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54575139/

10-12 01:43