首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql中类别之间的间隔天数

sql中类别之间的间隔天数
EN

Stack Overflow用户
提问于 2019-03-12 22:25:05
回答 1查看 39关注 0票数 0

是否可以计算每个类别的第一次购买和第二次购买之间的差异?

例如,我这里有一个数据集:

代码语言:javascript
复制
trx_id  user_pin category    date
    1   "jak"   "smartphone" "2018-01-01"
    1   "jak"   "groceries"  "2018-01-01"
    1   "jak"   "health"     "2018-01-01"
    1   "jak"   "virtual"    "2018-01-01"
    2   "mei"   "groceries"  "2018-01-01"
    2   "mei"   "virtual"    "2018-01-01"
    4   "jak"   "smartphone" "2018-05-02"
    8   "mei"   "groceries"  "2018-09-02"
    8   "mei"   "virtual"    "2018-09-02"

我想知道购买和结果的不同日期是这样的:

代码语言:javascript
复制
trx_id  user_pin     category     date        next_buy      diff
        1   "jak"   "smartphone" "2018-01-01" "2018-05-02"  121
        1   "jak"   "groceries"  "2018-01-01" "2018-05-02"  121
        1   "jak"   "health"     "2018-01-01" "2018-05-02"  121
        1   "jak"   "virtual"    "2018-01-01" "2018-05-02"  121
        4   "jak"   "smartphone" "2018-05-02"  "null"       null
        2   "mei"   "groceries"  "2018-01-01"  "2018-09-02" 244
        2   "mei"   "virtual"    "2018-01-01"  "2018-09-02" 244
        5   "mei"   "groceries"  "2018-09-02"  "null"       null
        5   "mei"   "virtual"    "2018-09-02"  "null"       null

查询结果如何?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-12 22:45:47

因此,假设SQL Server可以使用CTE和outer apply执行类似操作,以获取下一条记录:

代码语言:javascript
复制
 WITH mydataranked AS (
      Select trx_id,user_pin, category, purchase_date, 
      DENSE_RANK() OVER (Partition by user_pin, category ORDER by purchase_Date asc) as myrank
      from mydata
      )


 Select trx_id, user_pin, category, md.purchase_date, aa.purchase_date as next_buy, datediff(day, md.purchase_date, aa.purchase_date) as diff  
 from mydataranked md

  outer apply 
 (Select purchase_date from mydataranked md2 
  where md.user_pin=md2.user_pin and md.category=md.category and md2.myrank=md.myrank+1) aa
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55123845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档