我必须从周级数据中复制记录并将其推回,以便它用数据填充前一周。所以我得到了 1/6 的一行,这是一个星期六,然后填写所有列以具有相同的数据,除了 1/1(星期日)之前的日期。
所以我的来源是日期,信息 1/6,a
目标应该是 1/7, b | 1/6,一个 | 1/5,一个 | 1/4,一个 | 1/3,一个 | 1/2,一个 | 1/1,一个
** 抱歉格式,无法正确显示。
到目前为止,我认为最好的方法是使用几个联合所有
SELECT date, info FROM test
UNION ALL
SELECT date - 1, info FROM test
UNION ALL
SELECT date - 2, info FROM test
等等。
或进行受控笛卡尔连接
SELECT tmp_date AS date, info FROM test AS test
INNER JOIN date_temp_table AS dt
ON dt.tmp_date <= test.date
AND dt.tmp_date > test.date - 7
现在上述两种方法都有效,但是它们都非常低效并且几乎杀死我的数据库(Teradata)所以我愿意接受任何关于如何改进它的想法。