PostgreSQL:第一个和最后一个之间的计算

时间:2018-05-31 13:41:26

标签: postgresql

我试图编写一个查询来计算每个ID的第一个和最后一个得分之间的天数。

数据样本:

id  date    score
11  1/1/2017    25.34
4   1/2/2017    34.34
25  1/2/2017    15.78
4   3/2/2017    47.2
25  7/3/2017    65.21
11  9/3/2017    96.09
25  10/3/2017   11.3
4   10/3/2017   27.12

这远非我需要的,但我真的输了。诚实无知。有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

试试这个:

    SELECT 
    customer_id,
    date(last_score) - date(first_score) AS days_between_last_and_first_score,
    total_score::float/(date(last_score) - date(first_score)) AS score_per_day
   FROM
   (
   select customer_id, 
   MAX(date(purchase_date)) as last_score,
   MIN(date(purchase_date)) as first_score,
   SUM(score) AS total_score
   FROM candidate_test_q1
   group by customer_id
  ) AS sub_query