-1

我必须解决这个问题,但我无法做到。有人可以告诉我我做错了什么吗?谢谢

对于出版书籍超过 5 部的所有书籍类型,显示每种书籍类型的最早出版日期

我有一张桌子

书桌:

bookcode - book_title - publisher_code - book_type - book_price - publish_date

这就是我到目前为止所拥有的

SELECT book_type, publish_date
FROM book
WHERE top 1 publish_date
GROUP BY book_type and publish_date DESC
HAVING count(*) > 5;

如果有人可以帮助进行此练习,将不胜感激。

4

1 回答 1

1

该查询比您尝试的要简单得多 - 英文描述几乎逐字翻译成 SQL:

SELECT
    book_type
,   MIN(publish_date) -- display the earliest publish dates
FROM book
GROUP BY book_type    -- for each book type
HAVING count(*) > 5   -- For all book types with more than 5 published books

您正确地确定了使用该HAVING子句的必要性,但您错过了对MIN聚合函数的需求。暂时不考虑 your 的语法GROUP BY,你不应该把它放在publish_date那里,因为这会使你的所有组都有一个成员。

于 2013-10-16T19:27:13.643 回答