【发布时间】:2021-01-08 19:41:58
【问题描述】:
所以我有下表:
| User | Date |
|---|---|
| A | 2020-01-05 |
| A | 2020-07-01 |
| A | 2020-09-01 |
| A | 2020-12-31 |
| B | 2020-03-01 |
| B | 2020-11-05 |
但我想做的是:
- 取每个用户的最短(第一个)日期,然后
- 计算该用户在该最小(第一个)日期之后的记录数
以下是我想使用 PostgreSQL 实现的示例:
| User | min_date | count_of_records_in_6_months |
|---|---|---|
| A | 2020-01-05 | 2 |
| B | 2020-03-01 | 0 |
到目前为止我尝试过的内容如下(显然这只是给了我每个用户的总数)。
SELECT
user
,MIN(date) as min_date
,count(*) as count_of_records
FROM myTable
GROUP BY user
【问题讨论】:
-
您想要在最小日期之后的 6 个月内进行计数吗?或者相对于当前日期的最近六个月?
-
我想要每个用户在他们的最短日期之后的记录数(如我的示例输出表中所反映的)
-
2020-07-10 是 2020-01-05 之后的 6 个多月。您的问题不清楚。
-
这是我的错字...我更正为 2020-07-01(从第一个用户的最短日期算起 6 个月内)
标签: sql postgresql