对于参加马拉松比赛的人,我有下表
person start end
mike 2-Jun-14 2-Jul-14
nike 3-Jul-14 9-Aug-14
mini 1-Aug-14 3-Sep-14
sara 25-Jun-14 27-Jun-14
steve 12-Jun-14 3-Jul-14
stan 2-Jun-14 2-Aug-14
pete 3-Jul-14 9-Aug-14
tara 5-Jul-14 5-Sep-14
Run Code Online (Sandbox Code Playgroud)
我需要创建一个表格,显示一个人是否在每个月初开始运行
所需的表应如下所示
person running on
mike 1-Jul-14
nike 1-Aug-14
mini 1-Aug-14
mini 1-Sep-14
steve 1-Jul-14
stan 1-Jul-14
stan 1-Aug-14
pete 1-Aug-14
tara 1-Aug-14
tara 1-Sep-14
Run Code Online (Sandbox Code Playgroud)
现在,要做到这一点,我每个月都会运行一个单独的查询.这是非常乏味的 我怀疑我应该使用recursive,但我不知道如何在这里实现它.
PS:我有Teradata 14的所有功能,除了我不能写自己udf的和procedures.如何使用Teradata sql获得最终表格?
不需要递归或过程,这是使用一些专有的Teradata SQL扩展完成的:
SELECT person, BEGIN(pd)
FROM vt
EXPAND ON PERIOD(start, end) AS pd BY ANCHOR MONTH_BEGIN
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
786 次 |
| 最近记录: |