【发布时间】:2011-10-10 13:27:51
【问题描述】:
给定一个由描述、标签和其他一些字段组成的简单模型
结果应该是:
Entry.all 中所有标签的列表,不重复(例如 Entry.select("DISTINCT(tag)") )
每个标签的重复次数,也用于标签排序
每个标签的所有描述都按字母顺序排序,同样没有重复(但是,完全相同的描述可以存在于不同的标签中)
是否可以在一个(有效的)查询中结合这些?
编辑:
def change
create_table :entries do |t|
t.datetime :datum, :null => false
t.string :description
t.string :tag
(and some others)
end
add_index :entries, :user_id
end
【问题讨论】:
-
请问您可以在问题中包含表结构吗?
-
我已经在第一行提到了那些,现在包括...
-
描述栏的标准是什么?在你的模型中,同名的标签可以有不同的描述。
-
是的,没错。描述不是标签的描述;)
-
好的,但我的问题仍然存在。我们选择带有计数的 uniq 标签 (
select tag, count(tag) as total from entries group by tag) - 没关系。现在我们需要在结果中添加“描述”列。例如,我们有三个相似的标签和三个不同的描述,分组后我们有一个标签,你需要什么描述?唯一的想法是select tag, count(tag) as total, min(description) as description from entries group by tag或在 AR 中:Entry.all(:select => 'tag, count(tag) as total, min(description) as description', :group => 'tag')
标签: sql ruby-on-rails-3 activerecord ruby-on-rails-3.1