确定日期排序的位置| bigquery

lskq00tm  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(341)

我有我要分析的采购数据。我试图为每个用户找到第二次和第三次购买(可能还有4次、5次等)。
我目前掌握的数据如下:

email, first_purchase_date, processed_date, sku, first_order
abc@email.com   6/1/2019   6/1/2019   HG1555   HG1555
abc@email.com   6/1/2019   8/1/2019   RF2655   HG1555
abc@email.com   6/1/2019   8/1/2019   FP7789   HG1555
abc@email.com   6/1/2019  11/1/2019   RF2655   HG1555
def@email.com   7/1/2019   7/1/2019   RF2655   RF2655
def@email.com   7/1/2019   8/1/2019   HG1555   RF2655
def@email.com   7/1/2019   8/1/2019   FP7789   RF2655
xyz@email.com   9/1/2019   6/1/2019   HG1555   HG1555
xyz@email.com   9/1/2019  11/1/2019   FP7789   HG1555

“第一个订单”列查看客户购买的第一个篮子中的内容。有没有一种方法可以让我创建另一个列,告诉我每个商品的采购编号?理想情况下,该表如下所示:

email, first_purchase_date, processed_date, sku, first_order, order number
abc@email.com   6/1/2019   6/1/2019   HG1555   HG1555   1
abc@email.com   6/1/2019   8/1/2019   RF2655   HG1555   2
abc@email.com   6/1/2019   8/1/2019   FP7789   HG1555   2
abc@email.com   6/1/2019  11/1/2019   RF2655   HG1555   3
def@email.com   7/1/2019   7/1/2019   RF2655   RF2655   1
def@email.com   7/1/2019   8/1/2019   HG1555   RF2655   2
def@email.com   7/1/2019   8/1/2019   FP7789   RF2655   2
xyz@email.com   9/1/2019   6/1/2019   HG1555   HG1555   1
xyz@email.com   9/1/2019  11/1/2019   FP7789   HG1555   2

基本上,我想查看每封电子邮件,并确定相对于注册给该用户的所有其他处理日期,处理日期落在哪里。我试图解决的问题是,当一个特定的处理日期有多个行项目时。

nqwrtyyt

nqwrtyyt1#

下面是bigquery标准sql的示例,并假设processed\u date列是日期类型


# standardSQL

SELECT *,
  DENSE_RANK() OVER(PARTITION BY email ORDER BY processed_date) order_number
FROM `project.dataset.table`
-- ORDER BY email, processed_date

如果处理日期是一个字符串-您可以使用下面的


# standardSQL

SELECT *,
  DENSE_RANK() OVER(PARTITION BY email ORDER BY PARSE_DATE('%d/%m/%Y', processed_date)) order_number
FROM `project.dataset.table`
-- ORDER BY email, PARSE_DATE('%d/%m/%Y', processed_date)
l3zydbqr

l3zydbqr2#

这听起来像 dense_rank() :

select t.*,
       dense_rank() over (partition by email order by processed_date) as ranking
from t;

相关问题