postgresql查询生成多列报表
我在postgresql数据库中有一个客户事务表,包含以下列postgresql查询生成多列报表,sql,postgresql,Sql,Postgresql,我在postgresql数据库中有一个客户事务表,包含以下列 transactionId (primary)| customerId(int8)| transactionDate (timestamp) 1 2 2020-02-14 2 3 2020-01-08 3 1
transactionId (primary)| customerId(int8)| transactionDate (timestamp)
1 2 2020-02-14
2 3 2020-01-08
3 1 2020-02-06
4 2 2020-02-13
5 2 2020-03-24
需要构建一个查询来创建下面的报告
CustomerId| FirstTransaction| TotalTransactions| Transactions/Week| RecentTransactions
1 2020-02-06 1 1 2020-02-06
3 2020-01-08 1 1 2020-01-08
2 2020-02-13 3 2 2020-03-24
当客户最初开始时,总交易量、每周频率、最近交易量?
报告应仅考虑(包含)最近3个月的记录。请尝试以下方法,以下是答案 在过去三个月内,您还可以在
where
条件下使用以下命令
transactionDate > CURRENT_DATE - INTERVAL '3 months'
对于每周交易,您是否浏览客户的整个历史记录,找出每周的交易,然后将其除以有交易的周数?例如,客户1在2020年1月的第一周可能有5笔交易,没有其他交易。您的数据库可能有50周的事务处理时间。那么,您是否认为客户1每周的交易量为5笔交易除以50周=平均每周0.1笔交易
或
您只想要当前一周的交易?TransactionWeek对于customerId 3(总交易量本身1)是不正确的。@Udhaya2020-01-08
出现在该月的第二周。这不是第一周或第二周,而是每周的平均交易数。我们还需要考虑过去(过去)3个月的记录。
| customerid | firsttransaction | totaltransactions | recenttransactions | Transactions/Week |
| ---------- | ------------------------ | ----------------- | ------------------------ | ----------------- |
| 1 | 2020-02-06 | 1 | 2020-02-06 | 1 |
| 2 | 2020-02-13 | 3 | 2020-03-24 | 2 |
| 3 | 2020-01-08 | 1 | 2020-01-08 | 1 |
transactionDate > CURRENT_DATE - INTERVAL '3 months'