首页 > 解决方案 > sql如何在进行分组时限制记录数

问题描述

假设您有一个“喜欢”的评分记录。

user document timestamp 

您可以查看每个用户的评分计数

select user, count(user) 
from rating
group by user

如果您想要计数但上限为 100 等数字怎么办

select user, min(100, count(user))
from rating
group by user

你怎么能在sql中做类似上面的事情,最好是django queryset?

标签: sqldjango

解决方案


许多数据库支持least()(如果你想要一个上限,这就是你想要的):

select user, least(100, count(*))
from rating
group by user;

如果你没有,你可以使用一个case表达式:

select user,
       (case when count(*) > 100 then 100 else count(*) end)
from rating
group by user;

推荐阅读