假设我们有一个包含订单信息的表格orders,其中包含以下列:customer_id, order_date和order_amount。我们可以使用以下SQL查询语句来获取每个客户最新的三笔订单金额:
SELECT customer_id,
order_amount,
order_date
FROM orders AS o1
WHERE (SELECT COUNT(*)
FROM orders AS o2
WHERE o2.customer_id = o1.customer_id AND o2.order_date >= o1.order_date ) <= 3
ORDER BY customer_id, order_date DESC;
这个SQL查询会返回每位客户最新的三笔订单金额,并按照客户ID和订单日期倒序排列。
请注意,上述查询的核心是使用子查询来计算每个客户的订单数量,并在主查询中使用其结果来保留最新的三笔订单。
下一篇:按照顶点列表进行分组查询