要衡量免费产品获取新客户的有效性,我希望找到在收到免费订单后支付订单的客户数量。我的表如下所示:在其他条件行之后查找某些条件的行
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