-1

我有一个包含以下字段的表:

 id
 name
 date_created
 department

我想得到所有的记录排序date_created

但我只想要每个部门的 2 个结果。

我怎样才能做到这一点?

4

2 回答 2

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

于 2013-02-15T13:37:00.363 回答
-1
select * from tablename
group by department
order by date_created
limit 0, 2
于 2013-02-15T13:30:10.553 回答