注意:我知道查询还没有完成,我试着一次把它拼凑在一起。我在这一点上遇到了错误。
基本上,我得到的是MySQL错误
群函数的无效使用
我也搞不懂为什么。
这是我正在查询的数据库的图表:

问题是:
“显示已出版两本以上图书的出版商名称和已出版图书的数量。记录应按出版图书的数量降序排列,然后按升序排列。您的输出应与下面显示的内容相匹配(包括列标题)。”
输出应该如下所示:

这是我正在尝试的查询:
select publisher.name as "Publisher Name", count(book.isbn)
from publisher as "Book Count"
join book using (publisherID)
where count(book.isbn) > 2
group by publisher.name;发布于 2013-02-09 20:01:20
试一试
SELECT MIN(p.name) AS `Publisher Name`, COUNT(b.isbn) AS `Book Count`
FROM publisher AS p INNER JOIN
book AS b ON p.PublisherID = b.PublisherID
GROUP BY p.publisherID
HAVING COUNT(b.isbn) > 2这是木琴
发布于 2013-02-09 19:52:57
问题在于您的from语句。正确的语法是:
select publisher.name as "Publisher Name", count(book.isbn) as "Book Count"
from publisher join book
using (publisherID)
group by publisher.name;(book.isbn)>2
您为publisher表提供了Book Count的别名,而不是计数。
发布于 2013-02-09 19:57:50
2期:
COUNT条件下使用WHERE。您需要使用HAVING。尝试以下几点:
SELECT
publisher.name as `Publisher Name`,
COUNT(book.isbn) as `Book Count`
FROM
publisher
JOIN
book USING (publisherID)
GROUP BY
publisher.name
HAVING
`Book Count` > 2https://stackoverflow.com/questions/14790781
复制相似问题