【问题标题】:How to use recursive with dates in Teradata?如何在 Teradata 中对日期使用递归?
【发布时间】:2014-08-20 13:15:20
【问题描述】:

我有下表供跑马拉松的人使用

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

我需要创建一个表格,显示每个月初是否有人在跑步

  • 2014 年 7 月 1 日有 3 个人参加了马拉松比赛:mike, 史蒂夫,斯坦
  • 2014 年 8 月 1 日有 5 个人:nike、mini、stan、 皮特,塔拉
  • 2014 年 9 月 1 日有 2 个人:mini、tara
  • 等。 .

所需的表格应如下所示

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

现在,为此我每个月运行一个单独的查询。 这很乏味 我怀疑我应该使用recursive,但我不知道如何在这里实现它。

PS:我拥有具有所有功能的 Teradata 14,但我无法编写自己的 udfs 和 procedures。如何使用 Teradata sql 获得最终表?

【问题讨论】:

    标签: teradata


    【解决方案1】:

    不需要递归或过程,这是使用一些专有的 Teradata SQL 扩展完成的:

    SELECT person, BEGIN(pd)
    FROM vt
    EXPAND ON PERIOD(start, end) AS pd BY ANCHOR MONTH_BEGIN
    

    【讨论】:

    • @Buras:感谢您的赏金 :-)
    • 是的..他是救世主!!
    猜你喜欢
    • 2021-01-05
    • 1970-01-01
    • 2016-02-27
    • 2020-09-05
    • 2013-01-04
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 2021-01-21
    相关资源
    最近更新 更多