最常出现在mysql表中显示

时间:2013-04-26 13:51:51

标签: mysql group-by

我有以下数据集。

enter image description here

如果想要最顶层的节目并限制20个节目的结果,查询将如何显示?

修改

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

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

我没有得到理想的结果。

1 个答案:

答案 0 :(得分: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