簡體   English   中英

PostgreSQL中按組分組的月份之間的月份差異

[英]Month Difference between rows by group in PostgreSQL

我有使用PostgreSQL的數據,看起來像這樣

customer name       order_id         order_date
John                A001             1-Jan-2017
John                A002             1-Feb-2017
John                A003             1-Apr-2017
Smith               A004             1-Dec-2016
Smith               A005             1-Feb-2017
Jane                A006             1-Mar-2017
Dave                A007             1-Feb-2017
Dave                A008             1-Feb-2017
Dave                A009             1-Feb-2017

我試圖在另一列中獲得回購月份之間的差額。 像這樣

customer name       order_id         order_date        month_diff
John                A001             1-Jan-2017        null
John                A002             1-Feb-2017        1
John                A003             1-Apr-2017        2
Smith               A004             1-Dec-2016        null
Smith               A005             1-Feb-2017        3
Jane                A006             1-Mar-2017        null
Dave                A007             1-Feb-2017        null
Dave                A008             1-Feb-2017        0
Dave                A009             1-Feb-2017        0

任何建議將不勝感激。 我是PostgreSQL的新手。 先感謝您

這可以使用窗口函數輕松完成(假設order_date正確定義為DATE

select customer_name,
       order_id, 
       order_date, 
       order_date - lag(order_date) over (partition by customer_name order by order_date) as diff
from order_table
order by customer_name, order_date;

請注意,如果order_datedate ,則差異結果以天為單位。

嘗試 first_value()

select 
customer_name, order_id, order_date
, order_date - first_value(order_date) over (partition by customer_name order by order_id) as month_diff
from tname;

嘗試這個:

select
t.customer,
t.order_id,
t.order_date,
(select extract(MONTH from t.order_date) - extract(MONTH from tt.order_date) 
    from your_table tt
    where tt.order_id < t.order_id
    order by tt.order_id desc limit 1
)
from your_table t
order by t.order_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM