Задать вопрос
romandkoz
@romandkoz

Как отсортировать по полю и id в sql?

В общем задача такая, есть база с полями (id, brand), нужно чтобы вывод выглядел как
id brand
1 ebrand
4 ebrand
2 ebrand
3 abrand

Сортировка по полю brand не подходит, так как он выстраивает по алфавиту
Сейчас brand добавлен так как он должен отображаться, а новые добавленные должны выводиться по brand но сортироваться по id в рамках одного brand
  • Вопрос задан
  • 163 просмотра
Подписаться 1 Простой 7 комментариев
Решения вопроса 1
@alexalexes
Вам нужно определить минимальный id в каждой группе одинаковых брендов с помощью оконной функции, а потом сортировать по этому параметру в первую очередь.
-- тестовая выборка
with t as (select 1 id, 'eband' brand from dual union all
           select 2, 'ebrand' from dual union all
          select 3, 'abrand' from dual union all
          select 4, 'ebrand' from dual )
-- запрос
select a.*
  from (select t.*,
               min(t.id) over (partition by t.brand) brand_min_id
          from t
       ) a
order by brand_min_id, id

Результат:
id, brand, brand_min_id
1 eband 1
2 ebrand 2
4 ebrand 2
3 abrand 3
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы