-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 に答える