我有一些基于不同分组的日期的值 对于每个分组ID,到特定日期的最大值是多少。
实施例
日期分组ID值
2017年6月1日1 100
2017年6月3日1 101
2017年6月6日1 103
2017年6月2日2 200
2017年6月4日2 210
2017年6月8日2 220
2017年6月1日2 1000
2017年6月5日2 1020
2017年6月9日2 1050
我需要输出如下
日期分组ID值
2017年6月1日1 100
2017年6月2日1 100
2017年6月3日1 101
2017年6月4日1 101
2017年6月5日1 101
2017年6月6日1 103
2017年6月7日1 103
2017年6月8日1 103
2017年6月9日1 103
2017年6月10日1 103
2017年6月1日2 NULL
2017年6月2日2 200
2017年6月3日2 200
2017年6月4日2 210
2017年6月5日2 210
2017年6月6日2 210
2017年6月7日2 210
2017年6月8日2 220
2017年6月9日2 220
2017年6月10日2 220
2017年6月1日3 1000
2017年6月2日3 1000
2017年6月3日3 1000
2017年6月4日3 1000
2017年6月5日3 1020
2017年6月6日3 1020
2017年6月7日3 1020
2017年6月8日3 1020
2017年6月9日3 1050
2017年6月10日3 1050
答案 0 :(得分:1)
假设您拥有" " ++ s"${that.text2D(0)(0)}" ++
"\n" ++ s"${this.text2D(0)(0)}"
所有天数x所有分组ID数据,您可以尝试以下两个查询:
TEMPLATE_TABLE
上表CREATE TABLE TABLE_1 AS
SELECT A.DATE, A.GROUPING_ID, B.VALUE
FROM
TEMPLATE_TABLE A
LEFT JOIN
GIVEN_TABLE B
ON A.DATE = B.DATE AND A.GROUPING_ID = B.GROUPING_ID
ORDER BY A.GROUPING_ID, A.DATE;
将为匹配填充值,对非匹配填充NULL。
您可以使用此表通过以下查询中给出的自联接查找所有日期的指定日期之前的最大值:
TABLE_1
希望这有效。如果没有,请告诉我。