gpt4 book ai didi

sql - Postgresql - 获取列中具有最大值的行

转载 作者:行者123 更新时间:2023-11-29 11:58:58 25 4
gpt4 key购买 nike

我想形成一个 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 -clause 和 max,我不能包括书名。如果我选择 view (country_id, max_date) 并将其与出版商和书籍一起加入,我可能会收到每个国家/地区的多行。我怎样才能达到预期的结果?

最佳答案

SELECT DISTINCT ON (country_id)
country_id,
book_name
FROM country
JOIN publisher ON fk_pub_country = country_id
JOIN book ON fk_book_publisher = pub_id
ORDER BY
country_id,
release_date DESC,
book_id DESC

关于sql - Postgresql - 获取列中具有最大值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42271526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com