考慮採用以下的表:取最近三個訂單
- 客戶電子郵件ID
- 付款方法(COD /網路銀行/信用卡式/借記卡)
- 訂單ID
- 訂單創建日期
- 訂單狀態(成功/失敗/取消)
如何從SQL中的這些表格中獲取每個客戶過去3個月的最後三個成功訂單以及相關詳細信息?
考慮採用以下的表:取最近三個訂單
如何從SQL中的這些表格中獲取每個客戶過去3個月的最後三個成功訂單以及相關詳細信息?
這在MySQL中有點痛苦。可能最簡單的方法是使用變量。
您的列名不清晰。和你有一些附加條件,但是這是基本的想法:
select t.*
from (select t.*,
(@rn := if(@c = customerid, @rn + 1,
if(@c := customerid, 1, 1)
)
) as rn
from t cross join
(select @rn := 0, @c := '') params
order by customerid, orderdate desc
) t
where rn <= 3;
您可以添加額外的where
條件的子查詢。
我希望這有助於
SELECT *
FROM TABLENAME
WHERE OrderStatus='Success'
ORDER BY OrderCreationDate DESC
LIMIT 3;
這將返回3行,OP要爲每個客戶3行* –
看到這篇文章:HTTPS://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per- group-in-sql/ –