I would like to select the "top most" entry for each row with a duplicated column value.
Performing the following query -
SELECT *
FROM shop
ORDER BY shop.start_date DESC, shop.created_date DESC;
I get the result set -
+--------+---------+------------+--------------+
| row_id | shop_id | start_date | created_date |
+--------+---------+------------+--------------+
| 1      | 1       | 2017-02-01 | 2017-01-01   |
| 2      | 1       | 2017-01-01 | 2017-02-01   |
| 3      | 2       | 2017-01-01 | 2017-07-01   |
| 4      | 2       | 2017-01-01 | 2017-01-01   |
+--------+---------+------------+--------------+
Can I modify the SELECT so that I only get back the "top rows" for each unique shop_id -- in this case, row_ids 1 and 3. There can be 1..n number of rows with the same shop_id.
Similarly, if my query above returned the following order, I'd want to only SELECT row_ids 1 and 4 since those would be the "top most" entries each shop_id. 
+--------+---------+------------+--------------+
| row_id | shop_id | start_date | created_date |
+--------+---------+------------+--------------+
| 1      | 1       | 2017-02-01 | 2017-01-01   |
| 2      | 1       | 2017-01-01 | 2017-02-01   |
| 4      | 2       | 2017-01-01 | 2017-07-01   |
| 3      | 2       | 2017-01-01 | 2017-01-01   |
+--------+---------+------------+--------------+
 
     
    
