PostgreSQL - 我想查询每个客户端的最新订阅状态

PostgreSQL - I want to query out the latest Subscription status for every client with the date

客户可以不时选择加入或退出订阅。我需要每个客户的最新状态和订阅日期。

如果客户在第一次选择加入并且再也没有选择退出,我需要他们选择加入的第一个日期。但是,如果同一客户在选择加入后选择退出然后再次选择加入,我需要知道与最新选择加入相对应的日期。 (首先是或否后首先是)。

任何人都可以指导如何在 Postgresql 中查询这个。

例如,对于客户 C

试试这个查询:

WITH CTE1 AS
(
SELECT *,
ROW_NUMBER() OVER(PARTITION BY ClientID ORDER BY SubscriptionDate DESC) as Rn
FROM Table_name
WHERE SubscriptionStatus = 'Y'
)
SELECT ClientID, Source, 
SubscriptionStatus, SubscriptionDate
FROM CTE1
WHERE Rn = 1;