Выбрать запись с максимальной датой - MySQL
Формулировка задачи:
имеется таблица
id nomer rdata
1 12 2015-12-21
2 11 2015-12-22
3 10 2015-12-20
4 14 2015-12-22
5 14 2015-12-23
6 14 2015-12-21
должно вывести записи
1 12 2015-12-21
2 11 2015-12-22
3 10 2015-12-20
5 14 2015-12-23
пробовал так:
максимальную дату выводит, а вот графу номер выводит первую попавшуюся.
Помогите пожалуйста написать правильно запрос sql.
SELECT *,MAX(rdata) AS rdata FROM TABLE GROUP BY nomer HAVING MAX(rdata)
Решение задачи: «Выбрать запись с максимальной датой»
textual
Листинг программы
SELECT `t1` . * FROM `tbl_name` `t1` JOIN ( SELECT `nomer` , MAX( `rdata` ) AS `rdata` FROM `tbl_name` GROUP BY `nomer` ) AS `t2` ON `t1`.`nomer` = `t2`.`nomer` AND `t1`.`rdata` = `t2`.`rdata`;
Объяснение кода листинга программы
В данном коде на языке SQL выполняется запрос к таблице tbl_name
с целью выбрать запись с максимальной датой.
- SELECT - выбранные поля или псевдонимы столбцов, которые нужно получить в результате запроса.
t1
- псевдоним таблицыtbl_name
, которая участвует в запросе.- FROM - таблица, из которой производится выборка.
t2
- псевдоним таблицы, созданной в подзапросе.- JOIN - объединение двух таблиц по общим столбцам.
- ON - условие объединения таблиц.
- GROUP BY - группировка записей по указанному столбцу.
- MAX( ) - функция максимального значения в группе.
- AS - создание псевдонима для вычисляемого значения.
rdata
- столбец, по которому происходит группировка и выбор максимального значения.nomer
- столбец, по которому происходит группировка и выбор максимального значения. Таким образом, данный запрос выбирает все поля из таблицыtbl_name
, которые соответствуют записи с максимальным значением в столбцеrdata
иnomer
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д