group by 后取每组前几条记录
时间: 2023-07-29 20:12:16 浏览: 74
mysql分组取每组前几条记录(排名) 附group by与order by的研究
你可以使用 ROW_NUMBER() 函数来实现这个需求。具体的 SQL 语句如下:
```
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY group_column ORDER BY order_column) AS row_num
FROM your_table
) AS t
WHERE t.row_num <= N;
```
其中,`group_column` 是你要分组的列,`order_column` 是你要按照哪一列排序,`N` 是你要取每组前几条记录。这个 SQL 语句会为每一组的记录添加一个行号,然后筛选出行号小于等于 N 的记录,即为每组前 N 条记录。
阅读全文