django 分组统计遇见的问题
在使用 django 的时候发现了一个坑
例如:
In [54]: print(F.objects.all().values("age").annotate(fff=Count("age")).query)
SELECT "a_f"."age", COUNT("a_f"."age") AS "fff" FROM "a_f" GROUP BY "a_f"."age"
看上去也毫无问题,可是我换一个表
In [56]: print(F.objects.all().values("attack_type").annotate(total=Count("attack_type")).query)
SELECT "b_f"."type", COUNT("b_f"."type") AS "total" FROM "b_f" GROUP BY "b_f"."id" ORDER BY "b_f"."id" DESC
神奇的事情发生了.他竟然变成了 ORDER BY "b_f"."id" ,而且还加上了ORDER BY "b_f"."id" DESC,而且还会报错:
报错信息如下:
ProgrammingError: column "b_f.type" must appear in the GROUP BY clause or be used in an aggregate function LINE 1: SELECT "b_f"."type", COUNT("...
通过查询,找到一个答案,Django ORM Group By ID
发现加上order_by()就可以避免这个问题.
In [58]: print( RequestLogBasic.objects.all().values("type").annotate(total=Count("type")).order_by("type").query)
SELECT "b_f"."type", COUNT("b_f"."type") AS "total" FROM "b_f" GROUP BY "b_f"."type" ORDER BY "b_f"."type" ASC
django 分组统计遇见的问题的更多相关文章
- Django分组查询
先补充两个知识点: 1.group by 大前提:可以按照任意字段分组,但是最好是按照分辨度比较低的来分组(重复比较多的分辨度比较低). group by分组可以单独使用,不搭配其他条件. 分组的字段 ...
- Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等)
Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c i ...
- Dev用于界面按选中列进行分组统计数据源(实用技巧)
如果有用U8的可以明白这个功能就是模仿他的统计功能.我不过是把他造成通用的与适应于DEV的. (效率为6000条数据分组统计时间为3秒左右分组列过多5秒.1000条以下0.几秒,500条下0.00几秒 ...
- DataTable、List使用groupby进行分组和分组统计;List、DataTable查询筛选方法
DataTable分组统计: .用两层循环计算,前提条件是数据已经按分组的列排好序的. DataTable dt = new DataTable(); dt.Columns.AddRange(new ...
- 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码
2013-9-15 1. CustomValidator验证控件验证用户输入的字符长度 在实际的开发中通常会遇到验证用户输入的字符长度的问题,通常的情况下,可以写一个js的脚本或者函数,在ASP ...
- ORACLE的分组统计之ROLLUP(一)
Oracle 9i以后,扩展了group by 的功能,能够满足大部分多维数据的分析统计功能,主要表现: 1. rollup,cube,grouping sets 扩展group by字句提供了丰富的 ...
- XtraGrid使用心得(折叠式主细档、分组统计)
XtraGrid的关键类就是:GridControl和GridView.GridControl本身不显示数据,数据都是显示在GridView/CardView/XXXXView中.GridContro ...
- Oracle按不同时间分组统计
Oracle按不同时间分组统计 Oracle按不同时间分组统计的sql 如下表table1: 日期(exportDate) 数量(amount) -------------- ----------- ...
- 使用awk进行日志信息的分组统计
起因 这是今天我线上出了一个bug,需要查看日志并统计一个我需要的信息出现的频率,可以叫做分组统计. 日志文件部分内容 00:09:07.655 [showcase_backend][topsdk] ...
随机推荐
- SecurityManager USE
import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io. ...
- 不懂技术也可以轻松开发一款APP
这是个衣食住行都离不开手机的时代,甚至可以说,我们不用考虑其他的东西,只要拿着手机,就可以出门做自己想做的事情. 这就是手机app的强大之处,覆盖面极广,小到聊天交友,大到投资理财.每次都是app为我 ...
- 指定的WSDL可能与所选的工具包不兼容
使用LoadRunner在webservice协议下,import service的时候,报错: can not fetch WSDL,the specified WSDL datathe speci ...
- Django中ORM之创建模型
ORM 数据库与ORM映射关系 表名 --- 类名 字段 --- 属性 表记录 --- 类示例对象 创建表(建立模型) 模型建立如下 class Book(models.Model): title = ...
- Linux网络配置、文件及命令
Linux的网络配置是曾一直是我学习Linux的埋骨之地,投入了大量的精力和心神但是自己的虚拟机就是联不了网.原来一个大意,我一躺就是一年半.在这里简单的谈谈我对网络的微微认识. VMware的联网模 ...
- IDEA创建Maven工程依赖jar包爆红问题
使用IDEA创建maven工程后,在pom.xml文件中添加jar包坐标依赖后报错, 如图:
- ES8(2017)新特性学习
字符串填充 (1)从前填充:str.padStart(targetLength [, padString]); 示例: 'es8'.padStart(7, '0'); // '0000es8' (2) ...
- 服务器上安装anaconda
1.在anaconda网站下载安装包: 清华镜像网站:https://repo.continuum.io/archive/index.html 2.下载最新版本为python3 ,Linux64位的: ...
- 讲一讲java异常及自定义异常
1.异常,说白了.两种,一种就是就是不能让代码通过编译的异常.另一种就是程序运行期间出现的异常.异常就是错误,只要出现异常,程序就不会向下运行了.就不会执行后面的代码了.这时候就可以通过显示statc ...
- Swift开发教程--怎样使UITableViewController背景透明
self.tableView.backgroundView? .backgroundColor = UIColor.clearColor(); self.tableView.backgroundCol ...