如何返回表中最受欢迎的项目,但每个项目是唯一的?

如何返回表中最受欢迎的项目,但每个项目是唯一的?,第1张

概述我想弄清楚一个棘手的Django查询,希望你能帮忙.我有这个型号: class ActiveVenue(models.Model): event = models.ForeignKey(Event) venue = models.ForeignKey(Venue)class Venue(models.Model): name = models.CharField(max 我想弄清楚一个棘手的Django查询,希望你能帮忙.我有这个型号:

class ActiveVenue(models.Model):    event = models.ForeignKey(Event)    venue = models.ForeignKey(Venue)class Venue(models.Model):    name = models.CharFIEld(max_length=200)class Event(models.Model):    user = models.ForeignKey(User)    name = models.CharFIEld(max_length=200)

在我的应用程序中有许多事件,每个事件可以有多个活动场所,因此我目前的数据结构.我希望你的解决方案不是“将你的模型改为foo”,因为这已经是一个已部署的网站,我想保留当前的模型结构.

我想写一个返回最受欢迎场所的查询,但其中每个用户只计算一次场地.例如,如果我有一个用户有四个活动并且每次都使用相同的场地,我只想在确定最受欢迎的场地时计算一次.

为了说明这一点,想象一下这是我的数据:

event: A    user: bob   venue: The Hillevent: B    user: bob   venue: The Hillevent: C    user: bob   venue: The Hillevent: D    user: jane   venue: The Oaksevent: E    user: Sarah   venue: The Poundevent: F    user: davID   venue: The Poundevent: G    user: ron   venue: The Oaksevent: H    user: erica   venue: The Oaks

这里流行的订单是:

1. The Oaks2. The Pound3. The Hill

任何建议我如何写一个查询来做这个同时适用于postgres和sqlite(换句话说,不依赖于distinct()(在sqlite中不支持))?

谢谢!

解决方法 这有用吗?

from collections import Counter results = Counter([vID for vID,eID in ActiveVenue.objects.values_List("venue_ID","event_ID").distinct()]
总结

以上是内存溢出为你收集整理的如何返回表中最受欢迎的项目,但每个项目是唯一的?全部内容,希望文章能够帮你解决如何返回表中最受欢迎的项目,但每个项目是唯一的?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196826.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存