SELECT * FROM ( SELECT *, ROW_NUMBER() OVER(PARTITION BY group_column ORDER BY sort_column DESC) AS rownum FROM table ) t WHERE t.rownum<= 10;
上面的语句中,大家使用了ROW_NUMBER()函数来为每个分组中的记录进行编号。首先,大家先对数据进行分组,使用PARTITION BY关键字指定分组列名,然后使用ORDER BY关键字对指定列进行排序,DESC表示倒序排列。接着,大家将排序后的数据作为子查询,再次对其进行筛选,使用WHERE关键字过滤掉行号大于10的记录,得到分组后的前十条数据。
总的来说,MySQL分组后取top10可以通过ROW_NUMBER()函数和子查询来实现。大家可以根据实际情况选择不同的分组列和排序列,从而得到不同的查询结果。