Получить максимальное значение для каждого элемента в таблице

#mysql #sql #group-by

#mysql #sql #группировать по

Вопрос:

Хорошо, это название было ужасным.

В частности, у меня есть таблица штрих-кодов, которые были отсканированы (много раз, таблица ведет журнал всех сканирований) и имеет столбец created_on при создании сканирования.

Я хочу получить самое последнее сканирование для каждого штрих-кода. Есть и другие данные, но я их урезал и упростил приведенный ниже материал.

Если моя таблица похожа на эту:

 BARCODE  CREATED_ON
   1       5/7/11
   2       5/6/11
   1       5/5/11
   1       5/5/11
   2       5/8/11
   3       5/10/11
   3       5/2/11
  

Я хочу, чтобы запрос выдавал мне это:

 BARCODE  CREATED_ON
   1       5/7/11
   2       5/8/11
   3       5/10/11
  

Итак, в основном для каждого параметра 1 (штрих-код в этом примере) я хочу запись с максимальным параметром 2 (created_on).

Лучший способ сделать это?

Ответ №1:

 SELECT BARCODE,MAX(CREATED_ON)
FROM barcodes
GROUP BY BARCODE
  

При желании вы могли бы добавить это в конец для сортировки по штрих-коду:

 ORDER BY BARCODE ASC
  

Ответ №2:

  select barcode, max(created_on) from barcodes group by barcode