我必须做这个问题,但我还没能做到。有人能告诉我我做错了什么吗?感谢
对于出版图书超过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;
如果有人可以帮助进行这项练习,我们将不胜感激。
答案 0 :(得分: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
聚合函数的需求。暂时不考虑GROUP BY
的语法,你不应该将publish_date
放在那里,因为这会使你的所有群组都只有一个成员。