获取不同的 django sqlite3 的数量
get count of distinct django sqlite3
我想在选择另一个字段的不同字段后获取查询集的计数。
我的代码:
module_attempts_count = Subquery(ModuleProgressAttempt.objects.filter(
module_progress__module__id=OuterRef('id')).values('module_progress__user').distinct().values(
'module_progress__module__id').annotate(count=Count('id')).values('count'))
real_instances = VirtualClassRoomModule.objects.filter(
id__in=[vc.id for vc in vc_classrooms]).annotate(attendees_count=module_attempts_count,)
我正在将计数字段注释到查询集中。为了评估计数,我希望当前项目的 ModuleProgressAttempt 明显具有 module_progress__user。一个用户应该只被计算一次。 Postgres 支持不同的('module_progress__user')。我希望它适用于所有数据库。当前解决方案在不考虑不同用户的情况下采用总计数。
这有效。
Subquery(ModuleProgressAttempt.objects.filter(
module_progress__module__id=OuterRef('id')).values('module_progress__module__id')
.annotate(count=Count('module_progress__user__id', distinct=True)).values('count'))
我想在选择另一个字段的不同字段后获取查询集的计数。
我的代码:
module_attempts_count = Subquery(ModuleProgressAttempt.objects.filter(
module_progress__module__id=OuterRef('id')).values('module_progress__user').distinct().values(
'module_progress__module__id').annotate(count=Count('id')).values('count'))
real_instances = VirtualClassRoomModule.objects.filter(
id__in=[vc.id for vc in vc_classrooms]).annotate(attendees_count=module_attempts_count,)
我正在将计数字段注释到查询集中。为了评估计数,我希望当前项目的 ModuleProgressAttempt 明显具有 module_progress__user。一个用户应该只被计算一次。 Postgres 支持不同的('module_progress__user')。我希望它适用于所有数据库。当前解决方案在不考虑不同用户的情况下采用总计数。
这有效。
Subquery(ModuleProgressAttempt.objects.filter(
module_progress__module__id=OuterRef('id')).values('module_progress__module__id')
.annotate(count=Count('module_progress__user__id', distinct=True)).values('count'))