栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Django:选择具有最大时间戳记的值或加入同一张表

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django:选择具有最大时间戳记的值或加入同一张表

如果您使用的是PostgreSQL,通常的语法是:

select distinct on (name)    name, valuefrom environments_serverpropertiewhere server = ...order by name, timestamp desc

从PostgreSQL文档中:

SELECT DISTINCT ON(expression [,…])仅保留给定表达式等于的每组行的第一行。使用与ORDER
BY相同的规则来解释DISTINCT ON表达式(请参见上文)。请注意,除非使用ORDER
BY来确保所需的行首先出现,否则每个集合的“第一行”都是不可预测的。

您可以在中查看并尝试

sql fiddle demo

可以从django文档中将此语法转换为django

仅在PostgreSQL上,您可以传递位置参数(* fields)来指定DISTINCT应该应用的字段名称。这将转换为SELECT DISTINCT
ON SQL查询。

因此在django中,它将类似于:

ServerPropertie.objects.filter(...).order_by('name', '-timestamp').distinct('name')


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/661701.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号