MySQL统计指定用户首次交易后一个月内的tx_id数量
解决方案
可以通过子查询先获取目标用户的首次交易日期,再基于该日期筛选出一个月内的交易记录并统计数量,以下是具体SQL语句:
SELECT COUNT(tx_id) AS tx_count FROM your_table_name WHERE user_id = 123 AND date BETWEEN ( SELECT MIN(date) FROM your_table_name WHERE user_id = 123 ) AND DATE_ADD( (SELECT MIN(date) FROM your_table_name WHERE user_id = 123), INTERVAL 1 MONTH );
说明
- 内层子查询
SELECT MIN(date) FROM your_table_name WHERE user_id = 123用于获取user_id=123的首次交易日期 DATE_ADD(..., INTERVAL 1 MONTH)计算出首次日期后一个月的截止日期- 外层查询筛选出该用户在这个时间范围内的所有记录,并通过
COUNT(tx_id)统计交易数量
如果使用PostgreSQL数据库,日期计算可替换为 + INTERVAL '1 month',语句如下:
SELECT COUNT(tx_id) AS tx_count FROM your_table_name WHERE user_id = 123 AND date BETWEEN ( SELECT MIN(date) FROM your_table_name WHERE user_id = 123 ) AND ( SELECT MIN(date) + INTERVAL '1 month' FROM your_table_name WHERE user_id = 123 );
内容的提问来源于stack exchange,提问作者Parsa Omidvar
相关产品推荐
相关产品推荐

