I'm trying to limit one of my columns in my SQL query that uses LISTAGG to only group the first 3 rows into a single column.
For instance:
Table
-----
Name Orders
---------------
Joe Joe_Order1
Joe Joe_Order2
Joe Joe_Order3
Joe Joe_Order4
Joe Joe_Order5
Joe Joe_Order6
Mark Mark_Order1
Mark Mark_Order2
Mark Mark_Order3
Mark Mark_Order4
Have it return the following...
Name Recent_Orders
-----------------------------
Joe Joe_Order1, Joe_Order2, Joe_Order3
Mark Mark_Order1, Mark_Order2, Mark_Order3
I'm able to concatenate the data using listagg however, I'm not entirely sure how to limit the results to the first 3 records.
SELECT NAME, LISTAGG(Orders, ', ') within group(order by Orders)
as Recent_Orders
FROM
Order_table
GROUP BY
NAME
Is this possible with LISTAGG? Any help would be greatly appreciated. Thanks