如何在SQL查询中按月内日期对星期进行编号



我有一个包含每日销售额的BigQuery数据库。我希望按周汇总销售额,但需要每个月的周数,这意味着,按数字计算,我将有更多的"周"。然后是一年,因为有些星期在一个月内少于7天。

例如,十二月2022开始于星期四,结束于星期六。所以,今年12月我将有五周的时间来做我想做的事情。第一周为3天(星期四至六),其余四周各为7天。

我如何通过SQL拉?

我不知道从哪里开始。

几年前我有一个来自俄罗斯的同事,他把这个概念称为"技术周期",他将其定义为"一个月内的一周或一周的一小部分"。

我还没有发现我使用过的任何dbms都支持这个概念,但是大多数dbms都有返回年、月和/或周数(基于日历周)的函数。

因此,如果您在查询中包含年、月和周的数字,那么您可以对它们进行聚合并实现您正在寻找的细分。

在pseudo-sql:

select 
get_year(sales_date) as sales_year, 
get_month(sales_date) as sales_month, 
get_week(sales_date) as sales_week,
sum(sales_amt) as tot_sales_amt
from
daily_sales
group by
get_year(sales_date), 
get_month(sales_date), 
get_week(sales_date)

相关内容

  • 没有找到相关文章

最新更新