sql - 最大列 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 个相册
我想获取拥有最多专辑的用户,如何查询?
提前感谢
解决方案
您可以按用户分组,按专辑数量降序对结果进行排序并返回第一行:
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 |
推荐阅读
- android - View.generateViewId() 在库中是唯一的吗?
- mysql - 如何在 MySQL 中调整 Select 查询?
- android - Xamarin Android WebView 页面导航/更改进度指示器
- firebase - 如何在不遍历整个快照的情况下过滤来自firebase的结果
- encryption - 无法通过 IPsec ping
- terraform - Terraform 模块:使用模块创建多个资源并相互引用
- r - 为什么我在 R 中收到 NULL?
- .net-core - 如何在 Visual Studio 2019 中使用 Entity Framework Core 将实体模型添加到 .Net Core ClassLibrary?
- python - 从字符串中提取数字,并排序一个 numpy 列表
- spring - Hibernate:添加@Transactional 后选择上的分离实体错误