gpt4 book ai didi

sql - 为每个客户选择第一次购买

转载 作者:行者123 更新时间:2023-12-02 15:34:44 24 4
gpt4 key购买 nike

我们正在尝试在与此类似的表中为每个客户选择第一次购买:

transaction_no  customer_id  operator_id  purchase_date
20503 1 5 2012-08-24
20504 1 7 2013-10-15
20505 2 5 2013-09-05
20506 3 7 2010-09-06
20507 3 7 2012-07-30

我们试图实现的查询的预期结果是:

transaction_no  customer_id  operator_id  first_occurence
20503 1 5 2012-08-24
20505 2 5 2013-09-05
20506 3 7 2010-09-06

我们得到的最接近的是以下查询:

SELECT customer_id, MIN(purchase_date) As first_occurence
FROM Sales_Transactions_Header
GROUP BY customer_id;

结果如下:

customer_id  first_occurence
1 2012-08-24
2 2013-09-05
3 2010-09-06

但是当我们选择其余所需字段时,我们显然必须将它们添加到 GROUP BY 子句中,这将使 MIN 的结果不同。我们也尝试过加入它,但还没有取得任何进展。

我们如何在不使聚合函数困惑的情况下获得其余相关值?

最佳答案

您可以简单地将您提出的查询视为内部查询。这也适用于旧版本的 SQL Server(您没有指定 SQL Server 的版本)。

SELECT H.transaction_no, H.customer_id, H.operator_id, H.purchase_date
FROM Sales_Transactions_Header H
INNER JOIN
(SELECT customer_id, MIN(purchase_date) As first_occurence
FROM Sales_Transactions_Header
GROUP BY customer_id) X
ON H.customer_id = X.customer_id AND H.purchase_date = X.first_occurence

关于sql - 为每个客户选择第一次购买,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19802633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com