Suppose that I have a table in a SQL database with columns like the ones shown below. The table records various performance metrics of the employees in my company each month.

I can easily query the table so that I can see the best monthly sales figures that my employees have ever obtained, along with which employee was responsible and which month the figure was obtained in:

```
SELECT * FROM EmployeePerformance ORDER BY Sales DESC;

NAME    MONTH   SALES      COMMENDATIONS  ABSENCES    
Karen   Jul 16  36,319.13  2              0
David   Feb 16  35,398.03  2              1
Martin  Nov 16  33,774.38  1              1
Sandra  Nov 15  33,012.55  4              0
Sandra  Mar 16  31,404.45  1              0
Karen   Sep 16  30,645.78  2              2
David   Feb 16  29,584.81  1              1
Karen   Jun 16  29,030.00  3              0
Stuart  Mar 16  28,877.34  0              1
Karen   Nov 15  28,214.42  1              2
Martin  May 16  28,091.99  3              0

```

This query is very simple, but it's not quite what I want. How would I need to change it if I wanted to see only the top 3 monthly figures achieved by each employee in the result set?

To put it another way, I want to write a query that is the same as the one above, but if any employee would appear in the result set more than 3 times, then only their top 3 results should be included, and any further results of theirs should be ignored. In my sample query, Karen's figure from Nov 15 would no longer be included, because she already has three other figures higher than that according to the ordering "ORDER BY Sales DESC".

The specific SQL database I am using is either SQLite or, if what I need is not possible with SQLite, then MySQL.