启用用于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根据两个数组的值对数组进行排序   具有自签名证书和NTLM代理的java Maven SSL repo错误   java自定义字体按钮不工作AndroidStudio   java通过Spring MVC web应用程序向客户端发送文本文件   Java Spring Web服务SOAP身份验证   ANT property environment=“env”无法在JAVA中检索它,但如果作为ANT命令运行,则可以正常工作   java是为spring mvc rest api或spring boot api对应用服务器的每个新请求创建的服务、存储库和组件的新实例吗?   java私有静态最终字符串未完成其工作   PKCS12的安全Java密钥重新处理   java JPA继承表每类SQLSyntaxErrorException