【发布时间】:2016-11-24 06:43:27
【问题描述】:
我有一张表列出 order_id、order_date 和 user_id。
我可以毫无问题地检索每个客户下了多少订单并将其显示在 order_id 旁边。但是,我一直在尝试未成功的是在每个 order_id 旁边显示每个客户的第 n 个订单值。
SELECT order.id,
order.user_id,
date(from_unixtime(order.created_date))
COUNT(order2.id)
FROM order order
JOIN order order2
ON order2.user_id = order.user_id
AND order2.created_date <= order.created_date
GROUP
BY order.user_id,
date(from_unixtime(order.created_date)),
order.id
ORDER
BY order.user_id,
date(from_unixtime(order.created_date)),
order.id;
这给了我每个用户每个订单的订单总数,而不是第 n 个值。
结果应该是这样的:
created_date order_id user_id order_number
2016-11-21 234 12 2
2016-10-15 123 16 1
2016-10-03 234 12 1
非常感谢!
【问题讨论】:
-
能发一下表结构吗?
n-th order value是什么意思? -
对于每个用户,按升序计算他的多少个顺序。如果用户有3个订单,最早的订单返回1,第二个订单返回2,第三个订单返回3。
-
使用 AND order2.id
-
@89ZiNws 您提供了预期的结果。请提供表格示例数据。
-
@Viki888 表格样本与结果相同减去order_number
标签: mysql