我们正在尝试在类似于此的表中为每个客户选择第一次购买:
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 的结果不同。我们也尝试过自己加入它,但没有取得任何进展。
我们如何在不混淆聚合函数的情况下获得其余的相关值?