如何在Netezza SQL中实现四月至次年四月的财年计算?
在Netezza SQL中实现四月至次年四月的财年计算
针对你需要的「四月至次年四月」财年规则,我们可以用Netezza的日期函数结合CASE语句实现和你R代码完全一致的逻辑:
核心逻辑
- 若日期的月份≥4,财年格式为
当前年份/当前年份+1 - 若日期的月份<4,财年格式为
当前年份-1/当前年份
具体SQL实现
针对你的my_table表,完整查询语句如下:
SELECT my_date, color, CASE WHEN EXTRACT(MONTH FROM my_date) >= 4 THEN CONCAT(EXTRACT(YEAR FROM my_date), '/', EXTRACT(YEAR FROM my_date) + 1) ELSE CONCAT(EXTRACT(YEAR FROM my_date) - 1, '/', EXTRACT(YEAR FROM my_date)) END AS fiscal_year FROM my_table;
逻辑验证
用你提供的测试数据验证:
2020/12/18(12月≥4)→ 输出2020/2021- 若输入
2021/03/15(3月<4)→ 输出2020/2021 - 若输入
2021/04/01(4月≥4)→ 输出2021/2022
这个实现完全对应你R代码中的判断逻辑,借助Netezza原生的EXTRACT函数提取年、月信息,再通过CONCAT拼接成目标财年字符串。
内容的提问来源于stack exchange,提问作者stats_noob
相关产品推荐
相关产品推荐

