我的下表有 2 列
Dept | Term
A | 2010
A | 2011
B | 2012
C | 2013
我想创建最大值和最小值列,以便输出应如下表所示。最小值可以使用 min() 函数并按术语列分组来获得。最大值应该是下一组中的最小值。
Dept | min_Term | max_term
A | 2010 | 2012
B | 2012 | 2013
C | 2013 | Null
提前感谢您的帮助!
最佳答案
您可以使用lead
函数获取下一行的最小项值。
with t1 as (
select dept, min(term) mnterm
from table
group by dept)
, t2 as (select dept, mnterm as min_term, lead(mnterm) over(order by dept) as max_term
from t1)
select * from t2;
关于用于创建范围的 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32590550/