Я думаю о том, как мне нужно написать этот запрос. Я думаю, что это может включать CASE в операторе ORDER BY, но мне не помешало бы небольшое руководство.
У меня есть два столбца данных; ID и цена. Когда я ЗАКАЗЫВАЮ ПО цене ASC, результаты моего запроса выглядят примерно так:
ID | Цена
3 | 150
1 | 200
3 | 205
2 | 210
2 | 230
3 | 270
1 | 300
2 | 340
3 | 500
Что я хочу сделать, так это по-прежнему ЗАКАЗАТЬ по цене ASC, но с небольшим изменением. Я также хочу сгруппировать по идентификаторам. Например, я хотел бы, чтобы запрос нашел самую низкую цену из всех результатов, а затем нашел все другие записи с тем же идентификатором, перечисленные в порядке цен ASC. После того, как все записи для этого идентификатора будут найдены, запрос просматривает все остальные оставшиеся записи, снова находит самую низкую цену и повторяет. Таким образом, пул результатов будет уменьшаться каждый раз, когда он проходит через этот цикл. Для приведенного выше примера результатом будет:
ID | Цена
3 | 150
3 | 205
3 | 270
3 | 500
1 | 200
1 | 300
2 | 210
2 | 230
2 | 340
Цикл похож на поиск самой низкой цены, поиск всех записей с одинаковым идентификатором и перечисление в порядке цен, поиск самой низкой цены оставшихся результатов, поиск всех записей с одинаковым идентификатором и перечисление в порядке цен, повторение....
Любые идеи? Дайте мне знать, если я недостаточно хорошо объяснил.