Заказать сгруппированную таблицу по идентификатору пользователя sql - PullRequest
1 голос
/ 01 мая 2020

Я хочу заказать сгруппированный оператор, используя в качестве ссылки число, выбранное указанным c пользователем.

 SELECT *
 FROM likes 
 WHERE /**/
 GROUP BY type

TABLE

id_user  type
1420    1   
1421    3
1422    3
1424    7
1425    4
1426    2
1427    1

ожидаемый результат (в конце чего выбрал пользователь 1425)

1
2
3
7
4 //choosen by id_user 1425

Я хочу поставить последнюю строку с номером, выбранным пользователем. я просто не могу понять это

1 Ответ

0 голосов
/ 01 мая 2020

Вы можете агрегировать и использовать условное max для упорядочения, например, так:

select type
from likes
group by likes
order by max(case when id_user = 1425 then 1 else 0 end), type

Если какая-либо строка для данного type имеет id_user, который соответствует выбранному значению, условное max возвращает 1, который ставит его последним в наборе результатов. Второй критерий порядка нарушает связи для групп, которые не удовлетворяют условию.

Если вы используете MySQL, вы можете немного упростить предложение order by:

order by max(id_user = 1425), type
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...