mysql count分组后取每组前10
时间: 2023-11-24 20:06:12 浏览: 80
Mysql分组查询.md
可以使用子查询和LIMIT子句来实现这个需求。以下是示例代码:
```
SELECT group_name, value
FROM (
SELECT group_name, value,
ROW_NUMBER() OVER (PARTITION BY group_name ORDER BY value DESC) as row_num
FROM my_table
) as t
WHERE row_num <= 10;
```
这个查询首先对每个分组内的数据按照 value 从大到小排序,然后使用 ROW_NUMBER() 函数为每个分组内的行编号,最后在外层查询中选择每个分组内前10个行。你只需要将 `my_table` 替换成你自己的表名,`group_name` 替换成你要分组的列名,`value` 替换成你要排序的列名即可。
阅读全文