【问题标题】:Rails GROUP BY, COUNTRails 分组,计数
【发布时间】:2013-12-12 18:08:15
【问题描述】:

我有一个标签表,如下所示:

NAME  | USER_ID |  OBJECT_ID 
---------------------------
"fun" | 1       | 1
"fun" | 2       | 1

Object 是一个可标记的对象,仅此而已。现在,我遇到的问题是: 我想显示对象的非重复标签,但能够说出每个标签属于哪个用户。

所以,我为可标记对象声明了以下关联:

has_many :tags, :group => "name", :order => "count(tags.name) DESC,tags.nameASC"

所以,它做了两件事:1)按标签名称分组 -> 消除重复项 2)按记录数对标签进行排序

但是,同时我需要确定页面上的访问者(登录用户)是否留下任何标签,这是不可能的,因为GROUP从列表中选择随机标签并且只有一个用户可以确定的。

你会如何解决这个问题?

【问题讨论】:

  • 那么,您要单独获取该用户发布的标签吗?
  • 在列出所有标签(唯一标签名称)期间,我想以某种方式标记用户留下的标签。

标签: sql ruby-on-rails ruby count group-by


【解决方案1】:

我不想再次发布整个答案。但是,此链接正是您要查找的内容。 http://www.justskins.com/forums/aggregate-functions-does-value-149176.html#post501498

逻辑是在同一张表上使用JOIN。

【讨论】:

  • 谢谢。看起来很有趣,但是我该如何让它适应 Rails 呢?
  • 这可能不是我需要的。我不会为任何特定用户制作标签。我只需要知道用户是否列出了任何标签(但要全部显示)
猜你喜欢
  • 2011-01-02
  • 1970-01-01
  • 2017-03-25
  • 1970-01-01
  • 2017-06-22
  • 2020-05-28
  • 1970-01-01
  • 2011-04-08
相关资源
最近更新 更多