SQL返回自上次购买商品以来的年数

时间:2020-08-26 18:24:58

标签: sql

我有一个具有以下属性的购买表:

  • id
  • user_id(外键)
  • 日期

我正试图提出一个SQL查询,该查询返回以下内容:用户的总购买次数,所有商品的总价值以及自上次购买以来已经过去了多少年。像这样:

| total purchases | years | total amount spent
| 10              | 2     | 500.0

我从不擅长使用SQL,不胜感激。我被困在:

  SELECT
    ? as 'total purchases',
    ? as 'years',
    ? as 'total amount spent'
  FROM purchases
  ?

2 个答案:

答案 0 :(得分:0)

由于没有标记实际的数据库,因此我尝试使用Oracle(与其他数据库没有太大不同),并找到以下方法,

usersThatUpvoted

demo

答案 1 :(得分:0)

选择ID,值的总和,然后使用DATEDIFF计算自上次购买以来的年份。 w3schools - DATEDIFF()

SELECT
user_id, COUNT(user_id) as 'num_purchases', SUM(value) as 'Total', 
DATEDIFF(year, DATE(NOW()), MAX(date))
FROM
purchases
GROUP BY 1;