Django에서 GROUP BY를 사용하여 쿼리
데이터베이스 모델을 쿼리할 때 결과를 특정 필드별로 그룹화해야 하는 경우가 종종 있습니다. 집계된 정보. Django에서는 이 기능이 group_by 메소드에서 직접 지원되지 않습니다. 그러나 Django 코드베이스를 수정하지 않고도 비슷한 결과를 얻을 수 있는 접근 방식은 여러 가지가 있습니다.
한 가지 접근 방식은 Django의 집계 기능을 활용하는 것입니다. Count 집계자는 지정된 필드별로 그룹화된 필드의 발생 횟수를 계산하는 데 사용할 수 있습니다. 예를 들어, 지정에 따라 구성원을 그룹화하고 각 지정의 발생 횟수를 계산하려면:
from django.db.models import Count result = (Members.objects .values('designation') .annotate(dcount=Count('designation')) .order_by() )
이 쿼리는 다음과 유사한 결과를 생성합니다.
[{'designation': 'Salesman', 'dcount': 2}, {'designation': 'Manager', 'dcount': 2}]
값에 여러 필드가 포함될 수 있습니다. 추가 정보를 반환하는 인수입니다. 예:
.values('designation', 'first_name', 'last_name')
Django 문서는 value(), annotate() 및 Count 구문에 대한 광범위한 정보를 제공합니다.
order_by() 인수를 제외하면 다음과 같은 결과가 발생할 수 있다는 점에 유의하는 것이 중요합니다. 특히 기본 정렬 동작이 바람직하지 않은 경우 예상치 못한 결과가 발생합니다.
위 내용은 group_by()를 사용하지 않고 Django에서 쿼리 결과를 그룹화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!