teradata - 如何在 Teradata 中对日期使用递归?

标签 teradata

我为参加马拉松比赛的人准备了下表

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

现在,为了做到这一点,我每个月运行一个单独的查询。 这非常乏味我怀疑我应该使用递归,但我不知道如何在这里实现它。

PS:我拥有具有所有功能的 Teradata 14,但我无法编写自己的 udf过程。如何使用 Teradata sql 获取最终表?

最佳答案

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

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

关于teradata - 如何在 Teradata 中对日期使用递归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25333746/

相关文章:

python-3.x - 使用 Python 将日文字符输出到文件

sql - 查询从teradata时间戳返回特定日期(6)

hadoop - Sqoop 中的增量加载

sql - 从选择插入 (Teradata)

sql - 在没有 volatile 表的情况下优化 Teradata 中的巨大值列表

linux - ODBC 错误连接 Teradata

java - 将选择查询的结果集插入另一个数据库

csv - 如何使用 Teradata Studio 将数据从 csv 文件加载到表中

sql - 当表连接到自身时,WHERE 子句如何工作?

loops - 在Teradata中捕获插入错误