Django 之 distinct、count、sum字段的几种用法

本文详细讲解了如何在SQL和Django中实现distinct操作,包括单一字段和多个字段的区别,以及计数、求和和GROUP BY的运用。通过实例对比,展示如何在实际项目中灵活运用这两种技术进行数据处理。
摘要由CSDN通过智能技术生成

1、distinct 某个字段

sql语句:

SELECT DISTINCT user FROM user_table WHERE create_date =2020-12-08;

model语句:

UserModel.objects.filter(create_date=2020-12-08).values(“user”).distinct()

2、distinct 多个字段

sql语句:

SELECT DISTINCT user, status FROM user_table WHERE create_date =2020-12-08;

model语句:

UserModel.objects.filter(create_date=2020-12-08).values(“user”, “status").distinct()

3、统计 某个字段 count 总数
sql语句:

SELECT COUNT(DISTINCT user) FROM user_table WHERE create_date =2020-12-08;

model语句:

UserModel.objects.filter(create_date=2020-12-08).values(“user”).distinct().count()

4、统计 某个字段 sum 总数
假设某个字段名为 count,

sql语句:

SELECT SUM(count) FROM user_table WHERE create_date =2020-12-08';

model语句:

from django.db.models import Sum
UserModel.objects.filter(create_date=2020-12-08).aggregate(num=Sum(“count”))

5、使用 GROUP BY 统计 COUNT
假设根据 create_date 字段统计:

sql语句:

SELECT create_date, COUNT(user) FROM test_table GROUP BY create_date;

model语句:

from django.db.models import Count
TestTable.objects.values(“create_date”).annotate(count=Count(“user"))

6、使用 GROUP BY 统计 COUNT + DISTINCT
假设根据 create_date 字段统计:

sql语句:

SELECT create_date, COUNT(DISTINCT user) FROM test_table GROUP BY create_date;

model语句:

from django.db.models import Count
TestTable.objects.values(“create_date”).annotate(count=Count(“user”, distinct=True))

**7、使用 GROUP BY 统计 SUM **
假设根据 create_date 字段统计:

sql语句:

SELECT create_date, SUM(speaker_count) FROM test_table GROUP BY create_date;

model语句:

from django.db.models import Sum
TestTable.objects.values(“create_date”).annotate(sum=Sum(“speaker_count"))
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值