Limit and offset results
Use the LIMIT
clause to limit the number of results returned from a
SELECT statement. For example, if there are 1000 rows in a table, limit the number of
rows to return by specifying a LIMIT value. It is recommended to use LIMIT and OFFSET
with an ORDER BY clause. Otherwise, the results are returned in a random order,
producing unpredictable results.
A good use-case/example of using LIMIT and OFFSET is the application paging of results. Say for example your application wants to show 4 results per page. You can use limit and offset to implement stateless paging in the application. If you are showing n ( say 4 ) results per page, then the results for page m (say 2) are being displayed, then offset would be (n*m-1) which is 4 in this example and the limit would be n(which is 4 here).
SELECT $bag.fullName, $bag.bagInfo.tagNum, $flt_time
FROM BaggageInfo $bag,
$bag.bagInfo[].lastSeenTimeGmt $flt_time
WHERE $bag.bagInfo[].lastSeenStation=any "JTR"
ORDER BY $flt_time LIMIT 4
Explanation: You filter the data in the BaggageInfo
table based on the last seen station and you sort the result based on the last seen
time. You use an unnest array to flatten your data. That is the bagInfo
array is flattened and the last seen time is fetched. You need to just display the first
4 rows from the result set.
{"fullName":"Michelle Payne","tagNum":"17657806247861","flt_time":"2019-02-02T23:59:00Z"}
{"fullName":"Gerard Greene","tagNum":"1765780626568","flt_time":"2019-03-07T16:01:00Z"}
{"fullName":"Lorenzo Phil","tagNum":["17657806240001","17657806340001"],"flt_time":"2019-03-12T15:05:00Z"}
{"fullName":"Lucinda Beckman","tagNum":"17657806240001","flt_time":"2019-03-12T15:05:00Z"}
SELECT $bag.fullName, $bag.bagInfo.tagNum, $flt_time
FROM BaggageInfo $bag,
$bag.bagInfo[].lastSeenTimeGmt $flt_time
WHERE $bag.bagInfo[].lastSeenStation=any "JTR"
ORDER BY $flt_time LIMIT 4 OFFSET 4
Explanation: You filter the data in the BaggageInfo
table based on the last seen station and you sort the result based on the last seen
time. You use an unnest array to flatten your data. You need to display the contents of
the second page, so you set an OFFSET 4. Though you LIMIT to 4 rows, only one row is
displayed as the total result set is only 5. The first few are skipped and the fifth one
is displayed.
{"fullName":"Lorenzo Phil","tagNum":["17657806240001","17657806340001"],
"flt_time":"2019-03-12T16:05:00Z"}