powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос с группировкой результатов и сортировкой
6 сообщений из 6, страница 1 из 1
Запрос с группировкой результатов и сортировкой
    #39250628
ka_chu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Помогите создать запрос, который сортирует таблицу следующим образом:

А B
z 0
z 1
z 5
x 2
x 3
x 8
y 4
y 7

Порядок по полю А определяется группировкой результатов. Отсортировав по полю B первым идет значение z (в поле А). Тогда далее по порядку (поля B) идут все остальные z. Когда все z перебрали. Смотрим в порядке возрастания поля B следующие записи не имеющие z. И так далее.
Как-то путанно конечно, но суть проста ))

Была мысль создать вторую таблицу, которая содержала бы для каждого значение А минимальное значение B.

А B_first
z 0
x 2
y 4

Тогда мы можем заджойнить их и написать что-то вроде:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT A, B
FROM tab1 db
INNER JOIN 
(
	SELECT A, MIN(B) as minB
	FROM tab1
	GROUP BY A
) tab2
ON db.A = tab2.A
ORDER BY tab2.minB, A;



Но на этом запросе все зависает. Да и вообще есть сомнения что это правильный ход мысли.
Как тут быть?
...
Рейтинг: 0 / 0
Запрос с группировкой результатов и сортировкой
    #39250638
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ka_chu,

А кто мешает указать сразу два поля для сортировки?
ORDER BY A DESC, B ASC
...
Рейтинг: 0 / 0
Запрос с группировкой результатов и сортировкой
    #39250662
ka_chu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cygapb-007,

По полю А сортировать не нужно. Необходимо чтобы значения по полю А были вместе. Внутри этой группы они были отсортированы по полю В.
И эти группы (с равными полями А) были отсортированы исходя из первых своих записей по полям А.

Группа z идут первыми, потому что там есть z 0 . Группа x идут вторыми так как там x 2 . И группа y лишь третьи так как там самый маленький только y 4 .
...
Рейтинг: 0 / 0
Запрос с группировкой результатов и сортировкой
    #39250686
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ka_chu,

Тогда добавьте индекс по (A, B) - сам запрос кажется оптимальным
...
Рейтинг: 0 / 0
Запрос с группировкой результатов и сортировкой
    #39250689
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант, можно попробовать
Код: sql
1.
2.
3.
Select *
From tab1 t
Order by (Select min(B) from tab1 e where e.A=t.A), A;
...
Рейтинг: 0 / 0
Запрос с группировкой результатов и сортировкой
    #39250692
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже интересно стало, будут планы совпадать, или этот вариант хуже))
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос с группировкой результатов и сортировкой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]