#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