Выбрать запись с максимальной датой - 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 пробовал так:
SELECT *,MAX(rdata) AS rdata FROM TABLE GROUP BY nomer HAVING MAX(rdata)
максимальную дату выводит, а вот графу номер выводит первую попавшуюся. Помогите пожалуйста написать правильно запрос sql.

Решение задачи: «Выбрать запись с максимальной датой»

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 с целью выбрать запись с максимальной датой.

  1. SELECT - выбранные поля или псевдонимы столбцов, которые нужно получить в результате запроса.
  2. t1 - псевдоним таблицы tbl_name, которая участвует в запросе.
  3. FROM - таблица, из которой производится выборка.
  4. t2 - псевдоним таблицы, созданной в подзапросе.
  5. JOIN - объединение двух таблиц по общим столбцам.
  6. ON - условие объединения таблиц.
  7. GROUP BY - группировка записей по указанному столбцу.
  8. MAX( ) - функция максимального значения в группе.
  9. AS - создание псевдонима для вычисляемого значения.
  10. rdata - столбец, по которому происходит группировка и выбор максимального значения.
  11. nomer - столбец, по которому происходит группировка и выбор максимального значения. Таким образом, данный запрос выбирает все поля из таблицы tbl_name, которые соответствуют записи с максимальным значением в столбце rdata и nomer.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5