【问题标题】:In Azure Data bricks I want to get start dates of every week with week numbers from datetime column在 Azure Databricks 中,我想使用日期时间列中的周数获取每周的开始日期
【发布时间】:2020-07-22 13:07:50
【问题描述】:

这是一个示例数据框

Date    Items_Sold
12/29/2019  10
12/30/2019  20
12/31/2019  30
1/1/2020    40
1/2/2020    50
1/3/2020    60
1/4/2020    35
1/5/2020    56
1/6/2020    34
1/7/2020    564
1/8/2020    6
1/9/2020    45
1/10/2020   56
1/11/2020   45
1/12/2020   37
1/13/2020   36
1/14/2020   479
1/15/2020   47
1/16/2020   47
1/17/2020   578
1/18/2020   478
1/19/2020   3578
1/20/2020   67
1/21/2020   578
1/22/2020   478
1/23/2020   4567
1/24/2020   7889
1/25/2020   8999
1/26/2020   99
1/27/2020   66
1/28/2020   678
1/29/2020   889
1/30/2020   990
1/31/2020   58585
2/1/2020    585
2/2/2020    555
2/3/2020    56
2/4/2020    66
2/5/2020    66
2/6/2020    6634
2/7/2020    588
2/8/2020    2588
2/9/2020    255

我正在运行此查询

%sql
use my_items_table;

select weekofyear(Date), count(items_sold) as Sum
from my_items_table
where year(Date)=2020
group by weekofyear(Date)
order by weekofyear(Date)

我得到这个输出。 (IMP:我在 Sum 中添加了随机值)
周总和
1 | 300091
2 | 312756
3 | 309363
4 | 307312
5 | 310985
6 | 296889
7 | 315611


但我希望在第 1 周的第一列中保存每周的开始日期。像这样

Start_Date  Week    Sum
12/29/2019  1   300091
1/5/2020    2   312756
1/12/2020   3   309363
1/19/2020   4   307312
1/26/2020   5   310985
2/2/2020    6   296889
2/9/2020    7   315611

我正在 Azure Data Bricks 上运行查询。

【问题讨论】:

    标签: sql azure databricks azure-data-lake azure-databricks


    【解决方案1】:

    如果您有所有日期的数据,则只需使用min()

    select min(date), weekofyear(Date), count(items_sold) as Sum
    from my_items_table
    where year(Date) = 2020
    group by weekofyear(Date)
    order by weekofyear(Date);
    

    注意:year() 是从 1 月 1 日开始的日历年。您不会使用此查询获取其他年份的日期。如果这是一个问题,我建议您提出一个问题,询问如何获得一年中第一周的第一天。

    【讨论】:

      猜你喜欢
      • 2014-02-05
      • 1970-01-01
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 2022-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多