I'm trying to get the highest version within a group. My query:
max(version) as version,
client_id = 1
MySQL is confusing you by letting you get away with having a column in your select that isn't in your group by. To resolve the issue, make sure you don't select any field that isn't in the group by.
Instead of trying to get everything in one statement, you will need to use a subquery to find the max_version_id and then join to it.
SELECT T.* FROM rubrics T JOIN ( SELECT group_id, max(version) as max_version FROM rubrics GROUP BY group_id ) dedupe on T.group_id = dedupe.group_id and T.version_id = dedupe.max_version_id WHERE T.client_id = 1