Я пытаюсь получить строки, которые имеют максимальное значение в каждой группе.Строки с максимальным значением каждой группы
У меня есть эти столы
+-------+-----------+--------------+-----------+
| nid | name | crated | grp_id |
+-------+-----------+--------------+-----------+
| 1 | RAND_NAME | 123 | 11 |
| 2 | EHllo | 111 | 11 |
| 3 | Stop by | 444 | 11 |
| 4 | Radr c | 555 | 11 |
| 5 | NAE | 666 | 22 |
| 6 | ABC | 1234 | 22 |
| 7 | RAND | 123 | 22 |
| 8 | YELLO | 444 | 22 |
| 9 | AAA | 555 | 33 |
| 10 | WWW | 1235 | 33 |
| 11 | ADF | 553 | 33 |
+-------+-----------+--------------+-----------+
Итак, я хочу этой таблицу
+-------+-------------+------------+-----------+
| nid | name | created | grp_id |
+-------+-------------+------------+-----------+
| 3 | Stop by | 555 | 11 |
| 6 | ABC | 1234 | 22 |
| 10 | WWW | 1235 | 33 |
+-------+-------------+------------+-----------+
, который означает, что я хочу, чтобы захватить строки, которые имеют наибольшее значение, созданные в каждой группе. Таблица будет сгруппирована по grp_id.
Я думал так:
SELECT nid, name, created, grp_id
FROM table t
WHERE t.created = (SELECT MAX(t1.created) FROM table t1)
GROUP BY grp_id
ORDER BY grp_id
Но это не сработало. Что мне делать, чтобы получить три разные строки с наивысшим созданным значением в каждой группе?
Благодарим вас за понимание моего плохого объяснения.
Почему 444> 555 в GRP 11? – Sentinel
Извините, ошибка. изменил значение. – PHG