我希望能够编写一个SQL查询,该查询可以返回某个分组中具有最大值的行的一些数据。以下是一个演示的示例:
有三个表:country(国家)、publisher(出版商)和book(书籍)。每个出版商属于一个国家,每个书籍都有一个出版商。定义如下:
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),并按国家分组,以便每一行都包含该国最近发布的书籍名称。如果有多本书在同一天发布,则应获取id最高的那本。
如果仅使用 group by 和 max,无法包括书名。如果选择视图 (country_id, max_date) 并将其与 publisher 和 book 进行连接,可能会收到每个国家的多行数据。如何实现所需的结果?