启用用于django查询的sql窗口函数。向查询添加排名。

django-rank-quer的Python项目详细描述


https://badge.fury.io/py/django-rank-query.svghttps://travis-ci.org/petrdlouhy/django-rank-query.svg?branch=masterhttps://codecov.io/gh/petrdlouhy/django-rank-query/branch/master/graph/badge.svg

启用用于django查询的sql窗口函数。向查询添加排名。

curren't版本(1.10)中的django不支持postgresql中的[窗口函数](https://www.postgresql.org/docs/9.3/static/functions-window.html)。 这将实现稠密秩并为上秩添加快捷方式,从而检索秩的上值(窗口中最后一个元素的秩)。 该实现目前仅在postgresql上工作。

注意:对窗口函数的支持已经在[issue 26608](https://code.djangoproject.com/ticket/26608)中得到解决。

快速启动

安装等级:

pip install django-rank-query

用法

你可以根据用户的等级(字母表中的顺序号)对其进行注释 姓氏如下:

from rank import DenseRank, UpperRank, Rank
users = User.objects.all()
users = user.annotate(lower_rank=Rank('last_name'))
users = user.annotate(upper_rank=UpperRank('last_name'))
users = user.annotate(dense_rank=DenseRank('last_name'))

然后用不同的列组注释用户查询。例如,您可以通过函数来检索它们:

user_ranks = users.values('last_name', 'lower_rank', 'upper_rank')

注意:PostgreSQL不支持将rank函数与group by或在where子句中组合。因此不能在聚合查询中使用它们。

排名是在当前的查询中计算的,所以过滤会改变给定元素的排名,所以不能让整张表中的序号被ie.his name过滤掉。 这可以通过在sql中使用子查询来解决,但据我所知,django不支持它们。

运行测试

代码真的有用吗?

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ tox

学分

用于呈现此包的工具:

历史记录

0.1.0(2017-01-20)

  • pypi上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java:如何使用另一个类中的对象   如何在Java中迭代旁遮普语(阿拉伯语)?   类Java嵌套ArrayList返回对象   java正则表达式以匹配“:”之后包含的字符串   java为什么main()很好地显示“Lukaku”并包含_names()返回null?   java嵌套循环,无法理解如何编写此代码   java使用maven动物嗅探器插件检查自己的API   java上传的文件创建保存以备将来在GWT服务器端使用   java转换为Dalvik格式失败65536限制   Java后端的javascript最佳RIA工具   amazon web服务如何将tar文件从amazonS3 bucket提取到Java中的另一个s3   java如何在hibernate搜索中实现对int值的搜索?   使用Maven初始化引导层JavaFX时发生java错误   java Google登录API例外:10:   java Glassfish 3.1.2加载本机库(.dll)   java在join操作中使用TumblingWindow,但没有将任何元素传输到my JoinFunction   IBatis+Java:检索HashMap   多线程java与scala在单独线程上读取文件