如何找到客户完成的第一笔交易?

时间:2016-07-20 05:45:39

标签: sql sas

在消费者支出数据中,我如何找到客户完成的第一笔交易。例如,如果您有50个交易,并且您有10个不同的客户完成了这50个交易,那么我如何才能找到这10个客户中的每个客户完成的第一笔交易? 在SAS或SQL中执行此操作的建议确实会有所帮助。

3 个答案:

答案 0 :(得分:0)

我在SQL中回答。

如果您是交易日期,请使用

Select min(transactiondate) from [Your Transaction table]
group by customer.

或者您可以直接使用

Select min(transaction) from [Your Table]
group by Customer.

使用group by会区分每位客户,Min()会找到每位客户的最短或第一个交易日期。您可以在where子句中添加其他条件以过滤结果集。喜欢这个

Select min(transaction) from [You Table]
where date>=[Starting transaction date] 
and date<=[End transactiondate].

答案 1 :(得分:0)

在这里,您需要每个客户的第一笔交易,这就是为什么我使用RANK函数并根据customer_id分区记录的原因。此函数将为每个客户的第一笔交易返回值1,因此我在where子句中使用firsttransaction = 1,而我们不能直接在where子句中使用RANK函数,因此在这里我使用INLINE概念将条件应用于RANK函数

Select * from
          (
    Select customer,
    RANK()
    OVER(partition by customer_id
               Order by transaction_date) firsttransaction
    From table_name
            )
    Where firsttransaction=1

答案 2 :(得分:0)

这里您需要每个客户的第一笔交易,这就是为什么我在这里使用RANK()函数并对customer_id的分区记录进行分区,该函数将为每个客户的第一笔交易返回值1,所以我使用{{1} }中的firsttransaction=1子句中,我们不能直接在where子句中使用RANK() func,所以这里我使用INLINE概念在where函数上应用条件

RANK()