在SQL中合并不同,计数和选择的概念

时间:2018-02-15 04:31:02

标签: mysql sql database

我正在尝试找到具有最多不同ISBN(属性)的作者(属性)。他们都在一个名为Book的表中。

我理解需要使用不同的数量,但我对如何继续使用感到有点困惑:

SELECT author
FROM Book
GROUP BY ISBN
HAVING DISTINCT COUNT (ISBN);

不幸的是,这似乎是不正确的语法,我仍然不确定如何让作者获得最大值。 有什么建议?

2 个答案:

答案 0 :(得分:2)

您需要order bylimit

SELECT author
FROM Book
GROUP BY author
ORDER BY COUNT(DISTINCT ISBN) DESC
LIMIT 1;

我猜COUNT(*)就足够了,但如果有重复,则需要COUNT(DISTINCT)

答案 1 :(得分:0)

下面的查询将处理具有最高ISBN数的多位作者。

SELECT  author
FROM    Book
GROUP   BY author
HAVING  COUNT(DISTINCT ISBN) = (
                                    SELECT  COUNT(DISTINCT ISBN)
                                    FROM    Book
                                    GROUP   BY author
                                    ORDER   BY COUNT(DISTINCT ISBN) DESC
                                    LIMIT   1
                                )

这里是Demo