Using LIMIT within GROUP BY to get N results per group?

In this Post, Using LIMIT within GROUP BY to get N results per group whereas in MySQL limit is used for filtering or restricting the data to display where we can limit the data as per our choice where we can restrict the number of rows given by a query more over we can use limit clause with the group by clause to get the result totally different where we get the desired data as er choice.


Use of LIMIT

When we use the Limit statement before the group which is used for restricting the number of rows in each row where the number of rows is restricted in each group, Here we have given an example to use it and give an example as to understand it in a way when we can directly use the given code in our project.

FROM mytable
WHERE condition

Here we simply used limit to restrict the number of rows to 10 which it will only use for printing 10 rows of the table from my table using the where clause.

To use both groups by and limit in the same statement we have given an example below where we can show how to strict the number of rows in each group using the code below.

    ROW_ NUMBER() OVER (PARTITION BY column ORDER BY some_ ordering) AS row_ num
  FROM mytable
  WHERE condition
) subquery
WHERE row_ num <= 3;


Here we have used both clauses as a group by and limit which can be used to restrict the number of rows in every group which we have used for restricting As here we have used the value as three so in every group the result will be three for each group.

Now the total rows are dependent upon the number of groups and how many groups are being formed and each group will have the number of rows will be fixed where as if the total number of rows may be less than the limit only in case of when the group does not have enough number of rows which could be displayed and we have limited in our limit Clause so we can not estimate a minimum number of row in above code.

But we can always predict the maximum number of rows in the output which will be nothing but limit value multiple by the number of groups formed by group by clause.


To learn more about Using LIMIT within GROUP BY to get N results per group we may also visit:  by stack over flow.

To learn more about my MySQL Tutorials and problems faced in solving the problems in MySQL: Dictionary | How Can I Find Who Has The Highest Average Grade Using Dictionary?

Leave a Comment

%d bloggers like this: