Макс колонны sqlite - PullRequest
       0

Макс колонны sqlite

0 голосов
/ 21 марта 2020

У меня есть такая таблица:

Таблица: Альбомы

ID  NAME  USER_ID
---
1   Selfie 1
2   Me and VIPs 1
3   Me  2
4   My pictures 5
5   images  7
6   My POTUS Images 8
7   My Selfies  10  

вывод должен быть примерно таким:

MaxAlbumAUserHas: 2

Потому что у пользователя с идентификатором 1 есть 2 альбома

Я хочу получить пользователя, у которого больше всего альбомов, как я могу запросить это?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 21 марта 2020

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

select 'MaxAlbumAUserHas: ' || count(*) result
from Albums
group by user_id
order by count(*) desc limit 1;

или с помощью count() оконной функции без необходимости group by:

select 'MaxAlbumAUserHas: ' || count() over (partition by user_id) result
from Albums
order by count() over (partition by user_id) desc limit 1;

См. Демоверсию . Результаты:

| result              |
| ------------------- |
| MaxAlbumAUserHas: 2 |
0 голосов
/ 21 марта 2020

Вам нужно group by для подсчета альбомов. Затем упорядочить и ограничить количество строк, которые вы хотите:

select userid
from t
group by userid
order by count(*) desc
limit 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...