- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大家好
我读了很多关于它的文章,我可以理解缺少这样的实现,但我不明白为什么我不能使用 Django 来模拟 SELECT (SELECT DISTINCT[...] ) 订购方式。
我知道如果列在 ORDER BY 子句中,PostgreSQL 不支持 DISTINCT ON。但是我可以通过在 DISTINCT 的子选择上执行 ORDER BY 来达到我想要的结果。我想在 Django 中做同样的事情,因为在这种情况下性能没有问题。但是 Django 查询集(太)懒惰了。
我希望能够运行这个:
b = Backup.objects.filter(state__iexact='up').distinct('md5_checksum').order_by('-create_date', '-title')
或者至少是这样的:
b = Backup.objects.filter(state__iexact='up').distinct('md5_checksum')
if b.count() > 6:
b = b.order_by('-create_date', '-title')
但不幸的是,即使尝试通过 count() 调用强制执行第一个查询,它也会尝试在同一个查询中执行 distinct 和 order_by,这是失败的。
因此,基于this ,我必须回到 python 排序来做同样的事情:
b = sorted(b, key=lambda x: (x.create_date, x.title), reverse=True)
如果有人有更优雅的解决方案,一种强制 Django 提交第一个 SELECT DISTINCT 的方法,我会很乐意拥有它。谢谢!
最佳答案
在 order_by
方法中,您可以尝试添加 'md5_checksum'
作为第一个参数。这可能有助于它正确排序,除非我误解了这个问题。
关于django - 在 Django 中结合 order_by 和 distinct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14161993/
如何根据多对多关系条件是否为真来对查询集进行排序? 即 class Publication(models.Model): name = models.CharField(max_length=
我想获取 MyModel order_by('-end_date') 的最后 100 条记录,并对不同的获胜者类型进行 SUM 注释 MyModel.objects.all()[:100].order
我想根据两个因素对 QuerySet 进行排序。 A 和 B,但它应该将 A 优先于 B。也就是说,它应该对 A 进行排序,但是如果 A 对 QuerySet 中的两个对象相等,则它应该对因子 B 对
重复: Using a Django custom model method property in order_by() 我有两个模型;一个存储帖子,另一个存储对这些帖子进行的投票,使用外键字段进行
我在模型 roll_numb 中有字段。 roll_numb 的值如下。 070-001 070-007 070-343 080-002 080-008 当我 order_by roll_numb 时
所以我在使用order_by函数的查询中使用preload遇到麻烦。 通常我在order_by函数中使用list_member list_member def list_members() do qu
我们有一个复杂的查询,它使用跨表和 order_by 的联接。 示例如下: select distinct `accounts`.`id`, `accounts`.`number_of_lis
我有一个这样的数据库 order_id | date | qty ------------------------------------ a |2018-1
假设我有一列包含 1-100 之间的浮点值。 我希望能够将该值转换为 1-10 之间精度较低的整数,然后根据这个新值对结果进行排序。 想要降低排序的精确度似乎很奇怪,但 SQL 语句按 2 列排序,如
我有范围内的距离数据,例如 5-10、0-5、10-15、 我正在使用此查询来按排序顺序获取数据: $this->db->select("distance_from_mall"); $this->db
我必须对包含主机名的对象列表进行排序。 主机名采用以下格式:h1、h5、h10、h12、h12-abc、h1000、x10 如果我使用 order_by('hostname') 它会这样排序: h1,
我在 MySQL 数据库中有一系列“编号”的 varchar 字段: +-----------+ | name | +-----------+ | thing 1 | | thing
我不想运行查询来获取所有超过 6 个 com 的文章,然后根据 com 列表的长度进行排序,为此,我这样做了: ArticleModel.objects.filter(com__6__exists=
我有一个模型 Line,其中包含一个 total_value 和一个 group 字段。我使用以下代码获取给定组中具有最高值的 10 行: group_lines = Line.objects.fil
已阅读 django docs on order_by 有一个注释/警告(如果我理解正确的话)说: 如果您使用多值字段对查询集进行排序,则该查询集中具有多个相关项的每个元素都将多次添加到由 order
我正在使用 Django 1.7.7。 我想知道是否有人经历过这种情况。这是我的查询: events = Event.objects.filter( Q(date__gt=my_date) |
我在我的 template.php 文件中使用查询来显示 wooCommerce按类别分类的产品。 我的查询如下所示: 'product', 'stock' => 1, 'pos
我处于必须通过用于存储街道地址的 CharField 输出相当大的对象列表的情况。 我的问题是,显然数据是按 ASCII 代码排序的,因为它是一个 Charfield,具有可预测的结果......它像
Foo.objects.all().distinct('foo')不会删除重复项 Foo.objects.all().order_by().distinct('foo')确实删除它们。 我有 Meta
我喜欢 Django,喜欢它实现的分页功能。但是,我在尝试跨多个页面拆分随机排序的查询集时遇到了问题。 例如,我在查询集中有 100 个元素,并希望一次显示 25 个。将上下文对象作为随机排序的查询集
我是一名优秀的程序员,十分优秀!