Я хотел бы создать sql-запрос, который возвращает некоторые данные строк, которые имеют максимальное значение в некоторой группе. Рассмотрим следующий пример демонстрации:Postgresql - Получение строки с максимальным значением в столбце
Существует три таблицы: страна, издатель и книга. Каждый издатель принадлежит одной стране, и каждая книга имеет одного издателя. Определения может выглядеть
Country(country_id, country_name)
Publisher(pub_id, pub_name, fk_pub_country)
Book(book_id, book_name, release_date, fk_book_publisher)
Я хотел бы, чтобы выбрать (COUNTRY_ID, BOOK_NAME), сгруппированные по стране, так что каждая строка содержит имя наиболее недавно выпущенной книги в этой стране. Если в тот же день выпущено несколько книг, я должен получить тот, у которого самый высокий идентификатор.
Если я просто использую группу by -clause и max, я не могу включить название книги. Если я выберу view (country_id, max_date) и присоединяюсь к нему издателем и книгой, я могу получить несколько строк для каждой страны. Как я могу достичь желаемого результата?
Домашнее задание? Добавьте пример данных таблицы и ожидаемый результат, как форматированный текст. Также покажите нам свою текущую попытку запроса - и опишите, что происходит не так. – jarlh