
IT/파이썬 2023. 5. 4.
Django ORM - aggregation sum 결과가 0 인 결과 배제하기
Django ORM - aggregation sum 결과가 0 인 결과 배제하기 생각해보면 아주 쉽지만 안될지 될지 몰라서 그냥 해봤는데 되네 sum, avg, count 등을 수행한 결과가 0인 경우에 결과 값에서 빼고 싶다면 그냥 exclude 를 이용하면 된다. result_groupby_product_thismonth = ( target_summaryproductcount.values("product_name") .annotate(sum_count=Sum("count")) .values("product_name", "sum_count") .exclude(sum_count=0) ) 상품명으로 Group by 해서 sum을 구했는데, Sum 값이 0면 결과값에서 빼는 코드 참고용입니다. :) http..

IT/파이썬 2023. 5. 3.
Django ORM - Group by 사용해서 Count, Sum, Avg 구하기
Django ORM으로 Group by 필드 구현하는 방법은 아래 글을 이길 수가 없어요. 완전 잘 써놓으셔서 들어가서 읽고 감탄만 하시길!! 정리해 보면, 1. 먼저 Group by 할 필드를 정해서 values에 넣고 .values("필드") 2. 함수를 불러서 쓰고 .annotate(Count(), Sum(), Avg(), ...) 3. 보여줄 필드를 다시 정리하고 .values("필드", "필드", ...) 즉, values 를 2번 불러 쓰면 된다. [Django] ORM으로 Aggregation 함수와 Group by 사용 [Django] ORM으로 Aggregation 함수와 Group by 사용 쿼리에서 aggregation함수(count(), max(), first() 등등) 와 필요한 ..

IT/파이썬 2023. 5. 1.
Django - SQL group by 를 ORM 에서 구현하기
group by는 SQL에서 데이터를 그룹화하는 구문입니다. 장고 ORM에서는 values() 메소드를 사용하여 group by의 대상이 되는 컬럼을 지정할 수 있습니다. 이후 annotate() 함수로 집계된 데이터에서 집계 함수를 실행할 수 있습니다. 예를 들어, 다음과 같은 쿼리는 장고 ORM으로 다음과 같이 표현할 수 있습니다. # SQL SELECT name, COUNT(*) FROM test GROUP BY name; # Django ORM queryset = Test.objects.values('name').annotate(count=Count('*')) 위의 예제에서 values('name')은 GROUP BY name과 동일한 역할을 합니다. 이후 annotate(count=Count('..
