いくつかのグループで最大値を持つ行のデータを返すSQLクエリを作成したいと思います。デモの次の例を考えてみましょう。Postgresql - 列の最大値を持つ行を取得する
国、出版社、書籍の3つのテーブルがあります。各出版社は1つの国に属し、各書籍には1つの出版社があります。定義は、各行がその国の中で最も最近リリースされた本の名前が含まれるように、私は、国ごとにグループ化され(COUNTRY_ID、BOOK_NAME)を選択したいと思います
Country(country_id, country_name)
Publisher(pub_id, pub_name, fk_pub_country)
Book(book_id, book_name, release_date, fk_book_publisher)
ようになります。同じ日に複数の本がリリースされた場合は、最高のIDを持つ書籍を取得する必要があります。
私はgroup by -clauseとmaxを使用するだけで、本の名前を含めることはできません。ビュー(country_id、max_date)を選択して出版社や書籍と一緒に参加させると、国ごとに複数の行が表示されることがあります。希望の結果をどのように達成することができますか?あなたは、サブクエリを使用でき
宿題?サンプル・テーブル・データと期待される結果を、フォーマット済みのテキストとして追加します。また、現在のクエリの試行を表示し、何がうまくいかないかを説明します。 – jarlh