如果想用T-SQL从之前的时间段填充记录,可以使用LAG函数和COALESCE函数。以下是一个示例代码:
WITH sales AS
(
SELECT date, region_id, sales_amount
FROM sales_table
),
filled_sales AS
(
SELECT
date,
region_id,
COALESCE(sales_amount, LAG(sales_amount) OVER (PARTITION BY region_id ORDER BY date)) AS sales_amount
FROM sales
)
SELECT * FROM filled_sales
在这个示例中,我们有一个“sales_table”包含了“date”,“region_id”和“sales_amount”三列。在这个情况下,我们先创建了一个名为“sales”的公共表表达式(CTE),然后在“filled_sales” CTE中使用了LAG和COALESCE函数。LAG函数使我们能够按区域ID顺序排列日期,并从前一行获取销售金额。如果前一行没有销售金额,则可以使用COALESCE函数填充为0。最后,我们从“filled_sales”选择所有列。