要衡量免費產品獲取新客戶的有效性,我希望找到在收到免費訂單後支付訂單的客戶數量。我的表如下所示:在其他條件行之後查找某些條件的行
id | user | total
-----------------
1 1 0.00
2 1 57.33
3 2 58.21
4 2 0.00
5 3 26.10
6 3 0.00
7 3 64.94
8 4 0.00
9 5 34.54
在這個表中有五大客戶:1
,2
,3
,4
和5
。這是所有我能想到的條件。
- 用戶1接收到的以任意順序,然後置於一個支付命令,這個計數
- 用戶2放置在支付訂單,然後接收到以任意順序,這不計數
- 用戶3放置在支付順序,然後接到自由順序,然後將其置於一個支付命令,這個不計
- 用戶4接收以任意順序,這不計數
- 用戶5放置在支付順序,這不計數
您可以看到我只關心在收到免費訂單前沒有下過付款訂單的用戶,然後發出付款訂單。我在尋找伯爵的更聲明的定義是:
- 用戶下了訂單
n
其中n->total > 0
收到訂單m
,其中m->total == 0
和m->id < n->id
後。沒有訂單w
其中w->total > 0
和w->id < m->id
。
一些create table
代碼:
create table orders (
id int NOT NULL AUTO_INCREMENT,
user int,
total decimal(6,2),
PRIMARY KEY(id)
);
insert into orders (user, total) values
(1, 0.00),
(1, 57.33),
(2, 58.21),
(2, 0.00),
(3, 26.10),
(3, 0.00),
(3, 64.94),
(4, 0.00),
(5, 34.54);
在這種情況下,預計產量將1
。
是這條線是否正確? **您可以看到我只關心在收到付款訂單前沒有下過付款訂單的用戶,** – 1000111
爲了解決您的邏輯問題,我相信我們需要查看每個用戶的三個最新ID值以及相應的時間戳。這在MySQL中有點棘手,我認爲答案可能需要一些動態SQL。 –
@ 1000111抱歉,在那裏犯了一個錯字。我已經解決了它,它應該是「誰沒有收到免費訂單之前下了付費訂單」。 – gator