私は3つのテーブルを持っています:
publisher (id serial pkey, pub_name text)
book (id serial pkey, id_pub INTEGER NOT NULL REFERENCES publisher (id), book_name TEXT)
rank (id SERIAL PKEY, id_book INTEGER NOT NULL REFERENCES book (id), week DATE, selling INTEGER)
そして、出版社ごとに最も売れている本だけをリストしたいと考えています。私が今持っているものは、すべての本の販売を返します:
SELECT publisher.pub_name, book.book_name, SUM(rank.selling)
FROM rank, publisher, book
WHERE rank.id_book = book.id AND book.id_pub = publisher.id
GROUP BY publisher.pub_name, book.book_name;
そのように返します:
BigPublisher, Book1, 100300
GoodPublisher, BeBook, 10003
BigPublisher, Book2, 50200
OldPublisher, N-Book, 20009
GoodPublisher, CeBook, 4000
GoodPublisher, DeBook, 3001
そのような結果を探している場所:
BigPublisher, Book1, 100300
GoodPublisher, BeBook, 10003
OldPublisher, N-Book, 20009