ここで質問するのはまだ初めてなので、これは私が直面している問題への 2 回目の試みです。
スコアによって既に並べ替えられているテーブルがあります。すべてのレコードは、3 つのタイプのいずれかになります。スコアでテーブルを並べ替えたいのですが、10 レコードごとにミックスに追加の制限を課します。特に、3つのタイプのそれぞれからなる特定のミックスがあります。
以下の例では、タイプ C を少なくとも 2 つ、タイプ A を最大 2 つ使用したいと考えています。
私が持っているもの
------------------------------------------
ID Score Type
------------------------------------------
1 100 A
2 99 B
3 97 B
4 92 A
5 91 C
6 85 A
7 83 B
8 81 B
9 75 B
10 70 B
11 65 A
12 61 C
13 59 B
私が欲しいもの
------------------------------------------
ID Score Type
-----------------------------------------
1 100 A
2 99 B
3 97 B
4 92 A
5 91 C
7 83 B
8 81 B
9 75 B
10 70 B
12 61 C
これは Group By や usort で効率的に解決できるとは思えません。私の最初の解決策は、PHP にエクスポートし、そこで並べ替えを行うことでした。