在红移中计算一年中的周数作为excel中的weeknum()

Posted

技术标签:

【中文标题】在红移中计算一年中的周数作为excel中的weeknum()【英文标题】:calculate in redshift the week number of the year as weeknum() in excel 【发布时间】:2020-02-07 13:50:01 【问题描述】:

我需要在 redhsift sql 中计算一年中的周数,从星期日到星期六,从一月一日开始,但在第一个星期六发生后截断第一周。 有点像 WEEKNUM() 在 excel 中工作:

例如,2020 年将是 (mm/dd/yyyy)

01/01/2020 -> 周数 = 1 ... 01/04/2020 -> 周数 = 1 01/05/2020 -> 周数 = 2 ... 01/11/2020 -> 周数 = 2 01/12/2020 -> 周数 = 3

同时:

12/31/2019 -> weeknum = "2019 年的最后一周"

我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

这给出了 AFAICT 遵循 Excel 和 MSSQL 行为的周数:

星期是星期日-星期六 一年的第一天总是第一周 一年的第一天/最后一天不一定是整周
case when to_char(date_trunc('year', some_date), 'iw') = '01'
     then to_char(some_date + '1 day'::interval, 'iw')
     else to_char(some_date + '8 days'::interval, 'iw')
end

【讨论】:

以上是关于在红移中计算一年中的周数作为excel中的weeknum()的主要内容,如果未能解决你的问题,请参考以下文章

在红移中作为选择插入

如何在红移中获取过去 X 周的数据?

在红移中具有 DISTINCT 的 listagg

在红移中插入

在红移中评估的顺序是啥

数据值“0”在红移中有无效格式错误