Положим, есть таблица с полями:
id | group | priority
Ну и, например, следующие записи:
1 | alpha | 10
2 | alpha | 13
3 | alpha | 15
4 | betta | 13
5 | betta | 12
6 | betta | 17
7 | alpha | 20
Необходимо выбрать 4-ре идентификатора, 2 для группы альфа, и 2 для группы бетта. С наиботльшим приоритетом. Т.е. в данном случае: 7,3,6,4.
Количество групп может быть произвольным. Количество необходимых элементов из группы может быть проивольным. Порядок внутри группы важен (сортировка по полю priority). сортировка самих групп не важна. Я написал сначала альфу, потом бетту, но вполне подойдёт и бетта, а потом альфа. А можно и вообще в перемешку.
Есть идеи, как это можно сделать одним запросом?