Sql-Queries分配信息练习

时间:2013-10-16 19:23:43

标签: sql database

我必须做这个问题,但我还没能做到。有人能告诉我我做错了什么吗?感谢

对于出版图书超过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;

如果有人可以帮助进行这项练习,我们将不胜感激。

1 个答案:

答案 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放在那里,因为这会使你的所有群组都只有一个成员。