Estoy tratando de crear una consulta en una tabla que tiene unos 500,000 registros y unas 50 o 60 columnas. Lo que necesito es cotejar estos registros en grupos y seleccionar el registro máximo en cada grupo.MySQL seleccionando el registro máximo en el grupo por
Para simplificar el problema que tengo una tabla de la siguiente manera
+----+-------------+----------+--------+
| id | external_id | group_id | mypath |
+----+-------------+----------+--------+
| 1 | 1003 | 1 | a |
| 2 | 1004 | 2 | b |
| 3 | 1005 | 2 | c |
+----+-------------+----------+--------+
El grupo simple es el siguiente
select * from temp GROUP BY group_id
que devuelve
+----+-------------+----------+--------+
| id | external_id | group_id | mypath |
+----+-------------+----------+--------+
| 1 | 1003 | 1 | a |
| 2 | 1004 | 2 | b |
+----+-------------+----------+--------+
bonita, pero no lo que yo quiero . Lo que quiero es el registro completo de max enternal_id en cada grupo. En otras palabras
+----+-------------+----------+--------+
| id | external_id | group_id | mypath |
+----+-------------+----------+--------+
| 1 | 1003 | 1 | a |
| 3 | 1005 | 2 | c |
+----+-------------+----------+--------+
De alguna manera estoy mirando para poner una declaración max (external_id) en aquí para filtrar lo que se necesita, pero hasta ahora todo mi investigación ha fallado. Alguna guía sería apreciada. Es importante que al devolver el max (external_id) se seleccione todo el registro ya que la columna de ruta difiere.
Tal vez usando "SELECT MAX (external_id) AS máxima, * del grupo temp POR group_id" se puede hacer esto. – PiLHA