mysql - Mysql按客户分组并获取最后3条记录
问题描述
Sql Table
Sales Date order Id customer_id medium
07-07-2018 WP241530914666620 26 4
21-07-2018 WP241532133344497 26 4
29-07-2018 WP241532821589511 26 4
01-07-2018 1100070191 61 3
05-07-2018 1100071337 61 3
11-07-2018 1100073077 61 3
15-07-2018 1100074754 61 3
21-07-2018 1100075959 61 3
25-07-2018 1100077484 61 3
01-07-2018 100207654 64 3
07-07-2018 100210077 64 3
08-07-2018 WP241531004708220 64 4
Result:-
Sales Date order Id customer_id medium
07-07-2018 WP241530914666620 26 4
21-07-2018 WP241532133344497 26 4
29-07-2018 WP241532821589511 26 4
01-07-2018 1100070191 61 3
05-07-2018 1100071337 61 3
11-07-2018 1100073077 61 3
我需要 mysql 查询以上结果。
上表中每个客户的最后 3 个订单。我正在尝试一些代码,但无法获得上述结果
解决方案
您可以使用相关的子查询,例如:
select Sales_Date,order_Id,customer_id,medium
from
(select y1.Sales_Date,y1.order_Id,y1.customer_id,y1.medium,
(select count(*)
from 'yourtable' y2
where y2.customer_id=y1.customer_id
and (y2.Sales_Date < y1.Sales_Date or y2.Sales_Date = y1.Sales_Date)
) rn
from 'yourtable' y1
) finalresult
where rn<=3
参考:
推荐阅读
- javascript - 在单选按钮上单击更改 javascript 中表单元素的标签
- sql - 如何在语句中编写 case 以查看 2 个值的总和是否相等?
- oracle - 顶点和adf之间的区别
- java - 如何将文本文件转换为数组对象?爪哇
- spring - HttpClientErrorException$BadRequest: 400 null with RestTemplate 2.1.4.RELEASE
- javascript - 在 ngFor 中显示特定的 Div
- c++ - 未检测到越界指针算术?
- javascript - 不了解猫鼬模式数组语法
- bash - 文件/管道上的双向 HTTP 隧道
- android - 如何在 web 视图中从移动视图更改为桌面视图