MySQL - Как выбрать первую строку в группе по предложению по дате
Учитывая эту таблицу транзакций
ID Date Name Stat1
1 1 a 1
1 2 b 1
1 3 c 1
2 4 d 1
2 5 e 1
Я хочу сгруппировать записи по идентификатору, и иметь столбец "Имя" для идентификатора группы, чтобы показать фамилию по дате, как она отображается в таблице (большое число в дате хронологически последнее). конечный результат:
ID Date Name Stat1
1 3 c 3
2 5 e 2
К сожалению этот код:
Select ID,Date,Name,sum(Stat1)
From myTable
Group by ID
сгенерирует "случайное" имя,
как принудительно выбрать имя первой / последней записи (по дате) в каждой группе (ID)?
Спасибо
1 ответ
Решение
Вы можете сделать это с помощью такого запроса. измените min на max, если вы хотите иметь первый или последний ряд группы:
SELECT result.id,result.mdate,mt.name,result.stat1
FROM (
Select ID,min(date) mdate,sum(Stat1) as stat1
From myTable
Group by ID) AS result
LEFT JOIN myTable mt
ON mt.id = result.id AND mt.date = result.mdate;