1

我有以下数据集。

在此处输入图像描述

如果想要最常出现的节目并限制 20 个节目的结果,查询会如何?

编辑

我已经在网上搜索过这个,我需要使用 sql 中的 GROUP BY 方法。但是当我进行查询时

SELECT `show` FROM fans GROUP BY `show` LIMIT 20 

我没有得到想要的结果。

4

1 回答 1

2
SELECT  a.*, b.TotalCount
FROM    TableName a
        INNER JOIN
        (
            SELECT  c.show, COUNT(*) totalCount
            FROM    TableName c
            GROUP   BY c.show
        ) b ON a.show = b.show
ORDER   BY b.TotalCount DESC
LIMIT   20

如果你想为每个节目列出一个记录,你可以简单地使用GROUP BY

SELECT  a.show, COUNT(*) TotalCount
FROM    TableName a
GROUP   BY a.Show
ORDER   BY TotalCount DESC
LIMIT   20
于 2013-04-26T13:54:16.720 回答