Django对postgresql数据库进行分组聚合查询
- action(methods=['GET'], detail=False, url_path='count')
- def count(self, request):
- """统计最近30天的抓拍记录"""
- starttime = request.query_params.get('starttime')
- endtime = request.query_params.get('endtime')
- days = datetime.timedelta(days=1)
- start_date = datetime.datetime.strptime(starttime, '%Y%m%d%H%M%S').date()
- end_date = datetime.datetime.strptime(endtime, '%Y%m%d%H%M%S').date()
- count_list = {
- 'dates': {
- 'start_date': start_date,
- 'end_date': end_date
- },
- 'result': []
- }
- if end_date - start_date == days:
- result_list = models.DevicePhotoModel.objects.filter(take_photo_time__range=(start_date, end_date))\
- .extra(select={"take_photo_time": "to_char(take_photo_time, 'HH')"}).values('take_photo_time') \
- .annotate(count=Count('take_photo_time')).values('take_photo_time', 'count')
- # 统计当天的数据
- else:
- result_list = models.DevicePhotoModel.objects.filter(take_photo_time__range=(start_date, end_date)) \
- .extra(select={"take_photo_time": "to_char(take_photo_time, 'yyyy-mm-dd')"}).values('take_photo_time') \
- .annotate(count=Count('take_photo_time')).values('take_photo_time', 'count')
- for result in result_list:
- count_list['result'].append({
- 'date': result['take_photo_time'],
- 'count': result['count']
- })
- return Response(count
mysql和postgres数据库格式化方法不同。网上找了很多格式化案例,但是都会报错。mysql中用DATE_FORMAT格式化,postgresql中用TO_CHAR格式化,格式化参数也有些许差别
Django对postgresql数据库进行分组聚合查询的更多相关文章
- ubuntu 下搭建一个python3的虚拟环境(用于django配合postgresql数据库开发)
#安装python pip (在物理环境中安装) sudo apt-get install python-pip sudo apt-get install python3-pipsud ...
- orm分组,聚合查询,执行原生sql语句
from django.db.models import Avg from app01 import models annotate:(聚合查询) ret=models.Article.objects ...
- Solr分组聚合查询之Facet
摘要: Solr的分组聚合是一个笼统的概念,目的就是把查询结果做分类,有多种方式可以做到很类似的结果.也正是由于它们的不同表现,可以适合于多种场景. 何为Facet Facet是一种手段,用来将搜索结 ...
- crm使用FetchXml分组聚合查询
/* 创建者:菜刀居士的博客 * 创建日期:2014年07月09号 */ namespace Net.CRM.FetchXml { using System; using Micr ...
- ThinkPHP 数据库操作(四) : 聚合查询、时间查询、高级查询
聚合查询 在应用中我们经常会用到一些统计数据,例如当前所有(或者满足某些条件)的用户数.所有用户的最大积分.用户的平均成绩等等,ThinkPHP为这些统计操作提供了一系列的内置方法,包括: 用法示例: ...
- Solr分组聚合查询之Group
摘要: Solr对结果的分组处理除了facet还可以使用group.Solr的group是根据某一字段对结果分组,将每一组内满足查询的结果按顺序返回. Group对比Facet Group和Facet ...
- SQL分组聚合查询练习(SQL Server和Oracle相似)20190514
先建表 CREATE TABLE [dbo].[orderdt_jimmy]( ,) NOT NULL, [order_nid] [int] NOT NULL, ) NOT NULL, [qty] [ ...
- postgresql数据库利用函数返回查询结果集
- Python - Django - ORM 聚合查询和分组查询
models.py: from django.db import models # 出版社 class Publisher(models.Model): id = models.AutoField(p ...
随机推荐
- OneDrive
OneDrive https://onedrive.live.com
- 2013年各大小IT公司待遇,绝对真实,一线数据!(初版)
本人西电硕士,根据今年找工作的情况以及身边同学的汇总,总结各大公司的待遇如下,吐血奉献给各位学弟学妹,公司比较全,你想去的公司不在这里面,基本上是无名小公司了:无名小公司有时也很给力哦以下绝对是各大公 ...
- Carve Visual Studio2015编译
下载Carve库 https://github.com/folded/carve 目录结构如下: 用Visual Studio2015打开,点击右键,生成即可 在bin目录下生成了 .lib文件 ...
- 一个小时学会Git(转载)
---恢复内容开始--- 一个小时学会Git 最近要与部门同事一起做技术分享,我选择了Git,因为Git 是一种在全球范围都广受欢迎的版本控制系统.在开发过程中,为了跟踪代码,文档,项目等信息 ...
- centOS 8 安装Hadoop
1.安装环境 本教程使用 CentOS 8 64位 作为系统环境,请自行安装系统. 本教程基于原生 Hadoop 2,在 Hadoop 2.8.5 版本下验证通过,可适合任何 Hadoop 2.x.y ...
- LeetCode_101. Symmetric Tree
101. Symmetric Tree Easy Given a binary tree, check whether it is a mirror of itself (ie, symmetric ...
- SQLite 的简单使用
程序运行结果如下 : 输入name和age,点击"确认插入"按钮,即插入一条记录到数据库. 程序代码如下:(有详细注释,相信大家都看得懂哈!!!) //// ViewContro ...
- 细说可空类型 nullable PropertyType
可空类型是System.Nullable结构体的实列.一个可空类型代表了相应值类型的正确范围附加null值.这么说来,其实也不是很明子,命题嘛,一般不求易懂,但求准确. 那我就来说说这可空类型吧,上次 ...
- react Link标签 火狐失效怎么解决
这个问题其实找了好多资料都没有具体的解决方法: 今天突然想到可能是层级嵌套出问题了,刚好有个bug也是关于这个的,已经亲测解决了 代码如下:火狐和谷歌都能正常的跳转 <Link to=" ...
- laravel-excel 表格 文档翻译笔记
原文地址:https://blog.csdn.net/beyond__devil/article/details/78117471 1.安装 1>composer 安装 "maatwe ...