Sql查询每组前3条
MySQL版本
不好实现,要用到自定义变量
oracle版本
ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY your_column)
SELECT *
FROM (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY your_column) AS row_num
FROM your_table
) AS ranked
WHERE row_num <= 3; -- 这里的 3 表示你想要获取每个组的前三条记录,可以根据需要修改这个数字
废话短说