Mysql 如何获得每个类别的前5名

Mysql 如何获得每个类别的前5名,mysql,sql,Mysql,Sql,我正在使用mysql。 我有一个名为flow_data的表 有两个属性:类别和视图。 类别为int类型,视图为int类型。 类别为0-4(例如,num 0为视频,num 1为图片),查看次数取决于用户单击的次数。 我想查询每个类别的前5个视图的数据 SELECT DISTINCT id, cat, title, file, type, tags FROM flow_data ORDER BY views LIMIT 5 它只返回前5个视图,不基于每个类别 SELECT DISTINCT i

我正在使用mysql。 我有一个名为flow_data的表 有两个属性:类别和视图。 类别为int类型,视图为int类型。 类别为0-4(例如,num 0为视频,num 1为图片),查看次数取决于用户单击的次数。 我想查询每个类别的前5个视图的数据

SELECT DISTINCT id, cat, title, file, type, tags
FROM flow_data 
ORDER BY views 
LIMIT 5
它只返回前5个视图,不基于每个类别

SELECT DISTINCT id, cat, title, file, type, tags
FROM flow_data 
ORDER BY views 
LIMIT 5

有什么想法吗?提前感谢。

在oracle和sql server中有排名查询,您可以在mysql中搜索排名等效项。你可以看到。你也可以看到,也可以