我有一个如下所示的表:
| 姓名 | INT_VALUE | 开始 | END |
|---|---|---|---|
| 一个 | 100 | 2013-11-16 | 2014-11-16 |
目标是输出如下:
| 姓名 | INT_VALUE | 开始 | END | 间隔 |
|---|---|---|---|---|
| 一个 | 100 | 2013-11-16 | 2014-11-16 | 11-2013 |
| 一个 | 100 | 2013-11-16 | 2014-11-16 | 2013年12月 |
| 一个 | 100 | 2013-11-16 | 2014-11-16 | 1-2014 |
| 一个 | 100 | 2013-11-16 | 2014-11-16 | 2014年2月 |
我已经开始使用这个。但是我不确定如何使用表中的START和END日期来确定计算之间的月份列表的开始和结束。
SELECT START, calendar, COUNT(1)
FROM table1 AS t1
RIGHT JOIN (SELECT row_number() OVER (ORDER BY SEQ4()) AS MONTHS
, TO_DATE(DATEADD(MONTH, MONTHS, '2019-05-01')) AS calendar
FROM TABLE(GENERATOR(rowcount=>80)))
ON t1.START = calendar
GROUP BY 1, 2
ORDER BY 2, 1
;
这里的目标是将int值与范围开始到结束之间的每个月份关联起来。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号