如何在MySQL中为每个类别选择3行?
我有一个表,其中有很多数据,它有一个类别ID和职位ID,我需要阅读3个相同的CatID每个类别的新职位 这不是重复别人提出的问题。在我的问题中,请检查postid catid是否可以是任何内容,如果是重复问题,请在运行查询之前进行计算 我写的是如何在MySQL中为每个类别选择3行?,mysql,group-by,aggregate,Mysql,Group By,Aggregate,我有一个表,其中有很多数据,它有一个类别ID和职位ID,我需要阅读3个相同的CatID每个类别的新职位 这不是重复别人提出的问题。在我的问题中,请检查postid catid是否可以是任何内容,如果是重复问题,请在运行查询之前进行计算 我写的是 SELECT MAX(` postid `) AS p1, ` catid ` AS c1 FROM ` postcategory ` GROUP BY ` catid 我可以把另外两个查询放在它里面,但它会使一个查询变
SELECT
MAX(` postid `) AS p1,
` catid ` AS c1
FROM
` postcategory `
GROUP BY
` catid
我可以把另外两个查询放在它里面,但它会使一个查询变得很大。在MySQL中有什么好方法可以做到这一点吗。我正在寻找的阅读3张贴(最多)属于同一类
postId catId
------ --------
9 3
15 3
16 3
17 3
18 3
19 5
20 8
21 6
22 8
23 6
46 6
46 8
26 3
25 3
27 5
28 3
37 6
39 10
40 6
41 6
42 6
43 6
44 5
45 11
63 6
64 5
65 6
66 6
68 6
您可以使用下面的查询从每个类别中阅读3篇新文章
SELECT
p1.postId,
p1.catId
FROM
postcategory p1
JOIN postcategory p2 ON p1.catId = p2.catId
AND p2.postId >= p1.postId
GROUP BY
p1.postId,
p1.catId
HAVING
COUNT(*) <= 3
ORDER BY
catId,
postId
选择
p1.posted,
p1.catId
从…起
后分类p1
在p1.catId=p2.catId上连接后类别p2
和p2.postId>=p1.postId
分组
p1.posted,
p1.catId
有
COUNT(*)搜索select n per groups谷歌“mysql top n rows group”的可能重复项Hello all,请帮助我运行此数据输出您的愿望是什么?Hello@Faisal,我删除了postcategory表,现在所有类别都直接存储在post表中。请检查一下这个