首页 > 解决方案 > 最大列 sqlite

问题描述

我有一张这样的桌子:

表:专辑

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

因为 id 为 1 的用户有 2 个相册

我想获取拥有最多专辑的用户,如何查询?

提前感谢

标签: sqlsqlite

解决方案


您可以按用户分组,按专辑数量降序对结果进行排序并返回第一行:

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 |

推荐阅读