sql - 雪花中的日历日期列?
问题描述
我有一张雪花表,看起来像这样:
starting_date fiscal_week calendar_week
2020-12-31 53 53
2021-01-01 53 53
2021-01-08 53 01
并查找fiscal_week
(格式为 YYYYMMDD)。会计周应遵循一年中的 1-53 周数。calendar_week 不一定需要从星期日开始,它只需要从一年的第一天开始,即第 01 周。calendar_week
starting_date
因此,我希望它看起来像这样:
starting_date fiscal_week calendar_week
2020-12-31 53 53
2021-01-01 53 01
2021-01-08 53 02
我试过使用下面的 weekiso 和 week 函数,但仍然没有得到想要的结果。结果仍然反映了第一个表中显示的内容。
select *, weekiso (starting_date) as calendar_week from my table
在雪花数据库中是否有特定的方法可以做到这一点?我假设这就是我的问题的来源,但我不确定。
我是使用雪花的新手,所以任何帮助将不胜感激!
解决方案
您可以提取一年中的几天并对其进行一些算术运算。不过,在会话级别更改一年中的一周政策可能更容易
select floor((dayofyear(starting_date)+6)/7)
推荐阅读
- javascript - Ruby on rails Bootstrap Modal 不工作
- javascript - 如何在不使用 blob 和数据方案 url 的情况下在新选项卡中显示来自服务器的文件
- c# - 哪个更适合子查询,使用实体分配的 var 或直接访问实体?
- javascript - 如何调整图像的方向以显示正确的图像预览?
- python - 理解机器学习、NLP:使用 scikit-learn、python 和 NLTK 进行文本分类
- apache-kafka - Kafka 设计问题 - Kafka Connect 与自己的消费者/生产者
- android - 如何等到用户权限,才能在 Geolocator 中获取位置坐标以加载 Google 地图?
- javascript - 如何从快速后端服务器获取和显示图像到 React Native 前端?
- java - Creating a JAR archive without Java/OpenJDK
- java - 如何从 Java 中不断更新的 Gzip 文件中读取?