I have a profile and jobs table
Then there is the following query
SELECT COUNT(jobs.id) as jobs_completed,
      profile.rating,
      profile.id
FROM  profile
JOIN jobs ON jobs.user_id = profile.user_id AND jobs.ended <> 0
WHERE profile.whoami = 'contractor' HAVING jobs_completed > 5
ORDER BY rating DESC, jobs_completed DESC 
LIMIT 6
The query is working with id | jobs_completed | rating as input
| id | jobs_completed | rating | 
|---|---|---|
| 1 | 52 | 2.8 | 
| 2 | 16 | 4.6 | 
| 3 | 1 | 5.0 | 
| 4 | 8 | 4.7 | 
| 5 | 12 | 4.3 | 
| 6 | 5 | 4.9 | 
| 7 | 26 | 4.4 | 
| 8 | 57 | 4.9 | 
The expected output is
| id | jobs_completed | rating | 
|---|---|---|
| 8 | 57 | 4.9 | 
| 4 | 8 | 4.7 | 
| 2 | 16 | 4.6 | 
| 7 | 26 | 4.4 | 
| 5 | 12 | 4.3 | 
| 6 | 5 | 4.9 | 
The problem is that the output of this query is only producing one resulting row when I am expecting 6.
How should I write the query so that the produced output is according to the highest ratings first and then the highest jobs_completed second ONLY WHEN the jobs_completed is > 5 OR there is no jobs_completed that are > 5 remaining in the input ?
 
    