我有以下数据集。
如果想要最顶层的节目并限制20个节目的结果,查询将如何显示?
修改
我在网上搜索了这个,我需要使用sql中的GROUP BY方法。但是当我进行查询时
SELECT `show` FROM fans GROUP BY `show` LIMIT 20
我没有得到理想的结果。
答案 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