MySQL分组查询,取每组第一条数据
时间: 2024-12-15 21:27:22 浏览: 21
Mysql取分组后的每组第一条数据
MySQL的分组查询(GROUP BY)通常用于将结果集按照一个或多个列进行划分,然后对每个组进行聚合操作,如计算总和、平均值等。如果你想从每个组中获取第一条记录,这通常不是直接通过`GROUP BY`实现的,因为`GROUP BY`本身不会保留特定行的信息,它会丢弃所有非聚合字段。
不过,你可以结合子查询和LIMIT来达到这个目的。假设你想基于某个字段`group_column`进行分组,并获取每个组的第一条记录,可以尝试以下SQL语句:
```sql
SELECT * FROM (
SELECT column1, column2, ...,
ROW_NUMBER() OVER (PARTITION BY group_column ORDER BY some_sort_column) AS row_num
FROM your_table
) subquery
WHERE row_num = 1;
```
这里的关键是使用窗口函数ROW_NUMBER(),对每个分组按某个排序字段(如`some_sort_column`)进行排序,然后仅选择row_num为1的记录。
阅读全文