我有一个包含以下字段的表:
id
name
date_created
department
我想得到所有的记录排序date_created
但我只想要每个部门的 2 个结果。
我怎样才能做到这一点?
我有一个包含以下字段的表:
id
name
date_created
department
我想得到所有的记录排序date_created
但我只想要每个部门的 2 个结果。
我怎样才能做到这一点?
像这样的东西应该可以工作——你需要得到你的行号,按部门分组:
SELECT Id,
Name,
Date_Created,
Department
FROM (
SELECT @curRow:=CASE WHEN @prevRow = Department THEN @curRow+1 ELSE 1 END AS rn,
Id,
Name,
Date_Created,
Department,
@prevRow:=Department clset
FROM YourTable
JOIN (SELECT @curRow:= 0) r
ORDER BY Department, Date_Created DESC
) t
WHERE rn <= 2
还有一些样品Fiddle。
select * from tablename
group by department
order by date_created
limit 0, 2