最古の日付に基づいて行のランクを付けたいと思います。ただし、行の兄弟(同じグループ内の行)のランクが高い場合は、ランキングに影響します。現在MySQL:グループの最も早い日付を使用して各行のランクを確認してください
id | group | date
1 11 2016-12-1
2 11 2016-01-1
3 22 2016-02-1
4 22 2016-05-1
5 3 2016-04-1
6 3 2016-06-1
は:
SELECT *, @curRank := @curRank + 1 AS rank
FROM table
SELECT @curRank := 0) r
ORDER BY date ASC
id | group | date | rank
2 11 2016-01-1 1
3 22 2016-02-1 2
5 3 2016-04-1 3
4 22 2016-05-1 4
6 3 2016-06-1 5
1 11 2016-12-1 6
私は
id | group | date | rank
2 11 2016-01-1 1
1 11 2016-12-1 6
3 22 2016-02-1 2
4 22 2016-05-1 4
5 3 2016-04-1 3
6 3 2016-06-1 5
私はあなたがこれを2回通過を取らなければならない/したいと思います。最初のパスは、各グループの最下位日付を取ってランク付けし、グループの順位順に基づいて順位を付け直します。 – xQbert
グループは複数の兄弟を持つことができるので、グループ内の第3、第4のアイテムでどのように動作するのかわかりません。 – Kris