在azuredatabricks中,我想用datetime列中的周数来获取每周的开始日期

4ioopgfo  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(473)

这是一个示例Dataframe

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:我在总和中添加了随机值)
周总和
1 | 300091
2 | 312756
3 | 309363
4 | 307312
5 | 310985
6 | 296889
7 | 315611
但我想在其中的第一周一栏应该有每周的开始日期。这样地

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数据块的查询。

yx2lnoni

yx2lnoni1#

如果你每天都有数据,那就用 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日开始的日历年。使用此查询无法获取其他年份的日期。如果这是一个问题,我建议你问一个新问题,问如何获得一年中第一周的第一天。

相关问题