【发布时间】:2015-05-18 18:19:55
【问题描述】:
我正在编写一个应用程序,其中我需要显示每个月前 100 条记录(基本上是销售订单)的数据。表结构如下:-
order_id (primary-key) | order_name | order_amount | order_time
问题在于,该表最多可以包含 10 年(120 个月)的数据,不一定以任何方式排序,每个月都有 0 到 5000 个订单。我应该如何编写一个限制返回每个月的前 100 个订单的查询(以有效的方式)?
【问题讨论】:
-
如果递归 CTE 是可能的,那么您可以将其与
LIMIT子句一起使用,将查询限制为每月 100 个。 -
如果您搜索“每组选择前 N 行”,您可以找到很多示例。如果您可以创建一个包含最少样本数据(例如每月 2 个月和 3 行)的 sqlfiddle,并每月获取前 2 行,那么人们可以更好地帮助您。