@jrborisov

Как сделать группировку по двум полям и из них выбрать максимальную группу?

у меня есть таблица с такими полями

cf2a4a14ab1d427fbf11e613174e473c.png
их нужно сгруппировать что я делаю :
SELECT id_new,id_user
FROM tbl_bookmarks
GROUP BY id_user,id_new

получается такой результат
71ab242aa6454768bbd201fdc29b9516.png
после чего нужно выбрать максимальную группу то-есть должен получится результат
5 - 1
4 - 3
2 - 4
3 - 4
1 - 5

я надеюсь это возможно)
  • Вопрос задан
  • 2567 просмотров
Пригласить эксперта
Ответы на вопрос 1
k1lex
@k1lex
Программист торг. сети. C# (WPF, WinForms), T-SQL
Можно используя RANK.
SELECT 
id_new,
id_user
FROM (
SELECT 
     id_new,
    id_user, 
   RANK() OVER (PARTITION BY id_user ORDER by id_new DESK ) AS RNK
FROM tbl_bookmarks
GROUP BY id_user,id_new 
) X WHERE RNK=1

А вообще самый правильный вариант еще проще. Вы же делаете группировку. Что мешает сделать так:
SELECT MAX(id_new),id_user
FROM tbl_bookmarks
GROUP BY id_user
Ответ написан
Ваш ответ на вопрос

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

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