gpt4 book ai didi

mysql - 自上次购买以来的时间

转载 作者:行者123 更新时间:2023-11-29 13:39:30 25 4
gpt4 key购买 nike

所以我在数据库中有一个包含以下字段的表:

  • 交易 ID
  • 客户 ID
  • 交易日期

我想向名为的表添加一个附加字段

  • 每位客户自上次交易以来的时间

这应该只是(交易日期 A - 交易日期 B),前提是客户相同并且表格按日期排序。

我正在使用 mySQL(因此没有 Oracle Advances PL/SQL)。我的表有很多行。

从 txns 中选择 txn_id、cust_id、txn_date;

我该怎么做?

最佳答案

我认为使用相关子查询最容易做到这一点:

select t.*,
datediff((select t2.TransactionDate
from t t2
where t2.CustomerId = t.CustomerId and
t2.TransactionDate < t.TransactionDate
order by t2.TransactionDate desc
limit 1
), t.TransactionDate) as daysSinceLastPurchase
from t;

这假设交易发生在不同的日子。

如果这个假设不成立并且事务 ID 按升序排列,您可以使用:

select t.*,
datediff((select t2.TransactionDate
from t t2
where t2.CustomerId = t.CustomerId and
t2.TransactionId < t.TransactionId
order by t2.TransactionId desc
limit 1
), t.TransactionDate) as daysSinceLastPurchase
from t;

关于mysql - 自上次购买以来的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18277282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com