在sql select语句中按类别计算最高出现率

时间:2015-01-20 19:13:09

标签: mysql

我有一个表格,我希望按类别排列最高出现次数,并仅输出该特定条目。

我尝试了这个查询,但没有运气     $ sql =“SELECT类别,文章,COUNT(*)         来自articles_likes         WHERE category ='{$ category}'         GROUP BY文章         DESC“;

例如:

表 -

article category
1         A
1         B
1         B
2         A
2         A
2         B
3         A
4         B

预期产出 -

如果我选择A则应为2

如果我选择B则应为1

1 个答案:

答案 0 :(得分:2)

您希望按照类别的计数降序对文章进行排序。将查询限制为单个记录将为您提供计数最多的文章。对于A,以下查询将起作用。请注意,我使用table作为表名,因为问题没有提供表名。

SELECT article
FROM table
WHERE category = 'A'
GROUP BY article
ORDER BY COUNT(*) DESC
LIMIT 1

如果您需要的信息不仅仅是文章,那么您可以在select语句中添加以下内容以获取更多详细信息。

SELECT article, category, COUNT(*)
FROM table
WHERE category = 'A'
GROUP BY article
ORDER BY COUNT(*) DESC
LIMIT 1