Sto provando a creare una query in una tabella che contiene circa 500.000 record e circa 50 o 60 colonne. Ciò di cui ho bisogno è di raggruppare questi record in gruppi e selezionare il record massimo in ciascun gruppo.MySQL che seleziona il record massimo nel gruppo di
Per semplificare il problema che ho una tabella come segue
+----+-------------+----------+--------+
| id | external_id | group_id | mypath |
+----+-------------+----------+--------+
| 1 | 1003 | 1 | a |
| 2 | 1004 | 2 | b |
| 3 | 1005 | 2 | c |
+----+-------------+----------+--------+
Il gruppo semplice da è la seguente
select * from temp GROUP BY group_id
che restituisce
+----+-------------+----------+--------+
| id | external_id | group_id | mypath |
+----+-------------+----------+--------+
| 1 | 1003 | 1 | a |
| 2 | 1004 | 2 | b |
+----+-------------+----------+--------+
Bello ma non quello che voglio . Quello che voglio è l'intero record per max enternal_id in ogni gruppo. In altre parole
+----+-------------+----------+--------+
| id | external_id | group_id | mypath |
+----+-------------+----------+--------+
| 1 | 1003 | 1 | a |
| 3 | 1005 | 2 | c |
+----+-------------+----------+--------+
In qualche modo sto cercando di mettere un (external_id) dichiarazione max qui per filtrare ciò che è necessario ma finora tutta la mia inchiesta ha fallito. Alcune indicazioni sarebbero apprezzate. È importante che quando si restituisce il massimo (external_id) che l'intero record sia selezionato come la colonna del percorso differisce.
Forse usando "select MAX (external_id) AS massimo, * dalla temperatura GROUP BY group_id" si può fare questo. – PiLHA