Lets say I have the following table
+-----------------------+----------------+
| PERSON | ATE |
+-----------------------+----------------+
| Joe | Chicken |
| Joe | Chicken |
| Joe | Chicken |
| Joe | Tuna |
| Joe | Tuna |
| Joe | Chicken |
| Joe | Tuna |
| Joe | Chicken |
| Joe | Tuna |
| Joe | Tuna |
| Joe | Tuna |
| Joe | Chicken |
| Joe | Tuna |
| Joe | Tuna |
| Joe | Chicken |
| Joe | Tuna |
| Joe | Tuna |
| Joe | Tuna |
| Rob | Chicken |
| Rob | Tuna |
| Rob | Chicken |
| Rob | Chicken |
| Rob | Chicken |
| Rob | Chicken |
| Jonathan | Tuna |
| Jonathan | Tuna |
| Jonathan | Chicken |
| Jonathan | Tuna |
| Jonathan | Chicken |
+-----------------------+----------------+
I'd like to find the most frequently eaten food for each person. So, the desired result would be:
+-----------------------+----------------+
| PERSON | ATE |
+-----------------------+----------------+
| Joe | Tuna |
| Rob | Chicken |
| Jonathan | Tuna |
+-----------------------+----------------+
Naturally, I would GROUP BY (Person). Afterwards, I have to find the most frequently eaten item in each group. If they were numbers it'd be easy since I can just use the MAX function, but I have no idea how to pick out the most popular string among a bunch.
How would you accomplish what I'm trying to do in SQL?