我正在尝试创建一个带有客户 ID 和第一次、第二次和第三次购买日期的仪表板。我使用 MySQL,Northwind 数据库。
我的查询对于第一次购买非常有效,但我不明白如何为每个客户找到第二次和第三次购买日期。
现在我正在尝试下一步: 2nd_purchase_date 是 1st_purchase_date 之后的下一个 MIN(OrderDate) 但我收到以下错误“无效使用组函数”
DROP TABLE IF EXISTS t1;
CREATE TABLE t1
(
CustomerID varchar(5),
OrderDate datetime,
OrderID int,
i int
);
INSERT INTO t1(CustomerID, OrderDate, OrderID, i)
SELECT CustomerID, min(OrderDate), min(OrderID),1
FROM Orders
GROUP BY CustomerID;
INSERT INTO t1(CustomerID, OrderDate, OrderID, i)
SELECT CustomerID,min(OrderDate), min(OrderID),2
FROM Orders
WHERE min(OrderDate)
NOT IN
(
SELECT CustomerID, min(OrderDate), min(OrderID)
FROM Orders
)
GROUP BY CustomerID;
INSERT INTO t1(CustomerID, OrderDate, OrderID, i)
SELECT CustomerID,min(OrderDate), OrderID,3
FROM Orders
WHERE min(OrderDate)
NOT IN
(
SELECT CustomerID, min(OrderDate), min(OrderID) FROM Orders
)
GROUP BY CustomerID;