【发布时间】:2021-02-17 11:35:31
【问题描述】:
我有一个包含日期、类别和值的表格。类似这样:
Date Category Sell
01/01/21 Apple 1
01/01/21 Orange 3
01/01/21 Banana 2
02/01/21 Banana 1
03/01/21 Orange 2
我想做的是为每个类别创建一个日期行,即使在没有任何东西出售的那一天也是如此。所需的输出应具有日期和类别的粒度:
Date Category
01/01/21 Apple
01/01/21 Orange
01/01/21 Banana
02/01/21 Apple
02/01/21 Orange
02/01/21 Banana
03/01/21 Apple
03/01/21 Orange
03/01/21 Banana
我想采用这种格式,但我不确定解决此问题的最佳方法是什么?我对 SQL 很陌生,所以不确定要搜索什么。我正在使用 Redshift SQL。我的想法是创建一个单独的日期表,然后单独的类别表,然后加入它(但也许有更好的方法)?
CREATE TABLE #DateIntervals (
PeriodStartDate date,
PeriodEndDate date
)
DECLARE @StartDate datetime = '01/01/2021';
DECLARE @EndDate datetime = DATEADD(DAY, -1, DATEADD(YEAR, 5, @StartDate));
WHILE @StartDate <= @EndDate
BEGIN
INSERT INTO #DateIntervals (PeriodStartDate, PeriodEndDate)
SELECT @StartDate, DATEADD(day, 6, @StartDate)
SET @StartDate = DATEADD(day, 7, @StartDate)
END
但是,正如上面所说的"Invalid operation: syntax error at or near "DECLARE" Position",这段代码有一个错误
如果有人能给我建议,将不胜感激。
【问题讨论】:
标签: sql date amazon-redshift