繁体   English   中英

SQL(用于Teradata)

[英]SQL (for teradata)

如果我有如下数据集:

1/01/2014   a
2/01/2014   a
3/01/2014   a
4/01/2014   b
5/01/2014   b
6/01/2014   b
7/01/2014   b
8/01/2014   a
9/01/2014   a
10/01/2014  a
11/01/2014  a
12/01/2014  a
13/01/2014  a

我将如何获得如下所示的输出:

letter  min     max
a   1/01/2014   3/01/2014
b   4/01/2014   7/01/2014
a   8/01/2014   13/01/2014

Teradata支持窗口功能。 您需要计算一个组标识符。 一种方法是行号的不同:

select letter, min(date), max(date)
from (select t.*,
             (row_number() over (order by date) -
              row_number() over (partition by letter order by date)
             ) as grp
      from t
     ) t
group by letter, grp;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM