Próbuję utworzyć zapytanie w tabeli zawierającej około 500 000 rekordów i około 50 lub 60 kolumn. Potrzebuję zebrać te rekordy w grupy i wybrać maksymalny rekord w każdej grupie.Wybieranie przez MySQL maks. Rekordu w grupie przez
Aby uprościć problem mam następująco
+----+-------------+----------+--------+
| id | external_id | group_id | mypath |
+----+-------------+----------+--------+
| 1 | 1003 | 1 | a |
| 2 | 1004 | 2 | b |
| 3 | 1005 | 2 | c |
+----+-------------+----------+--------+
Prosta grupę, jest następująca
select * from temp GROUP BY group_id
która zwraca
+----+-------------+----------+--------+
| id | external_id | group_id | mypath |
+----+-------------+----------+--------+
| 1 | 1003 | 1 | a |
| 2 | 1004 | 2 | b |
+----+-------------+----------+--------+
Ładne, ale nie to, co chcę tabelę . To, czego chcę, to cały rekord dla max enternal_id w każdej grupie. Innymi słowy
+----+-------------+----------+--------+
| id | external_id | group_id | mypath |
+----+-------------+----------+--------+
| 1 | 1003 | 1 | a |
| 3 | 1005 | 2 | c |
+----+-------------+----------+--------+
Jakoś szukam umieścić max (external_id) oświadczenie tu do filtrowania, co jest potrzebne, ale do tej pory wszystkie moje dochodzenie nie powiodło się. Pewne wskazówki będą mile widziane. Ważne jest, aby zwracając max (external_id), że cały rekord został wybrany jako kolumna ścieżki różni się.
Być może za pomocą "wybierz MAX (external_id) jako maksimum, * z GROUP BY temp group_id" można to zrobić. – PiLHA