Tag: sql order by

通过对另一个表中的值进行分组来对订单表进

我有一个问题表:标题每个问题都有答案,在另一个表中:text,question_id每个答案都有投票,在另一个表中:answer_id 我可以要求总票数 question.votes.count 我已经看到如何在http://guides.rubyonrails.org/active_record_querying.html#group上对投票数据库进行分组 Vote.group(“answer_id”) 但我想通过投票来命令我的问题。 这是通过另一个表的分组从表中排序数组。 那可能吗? q=Question.last q.answers.order_by_vote #How to do this? 我认为我的答案可能是在答案模型上做一个范围,该范围使得对属于该问题的投票子集进行分组。 我对吗? 谢谢。

订单条款中的问题和活动记录中的限制

我正在触发此查询 p “my query starts here…” @relevant_customers_for_total_spent = Customer.order(“total_amount DESC”).where(‘id IN (?)’,@customers_ids).limit(relevant_customers_count_for_total_spent) p ” ——- ” p relevant_customers_count_for_total_spent # output is: 1139 p @relevant_customers_for_total_spent.count # output is: 2888 p ” ——- ” 更多的日志是说实际的查询是: SELECT COUNT(*) FROM `customers` WHERE (id IN (2,3,4,5,6,75,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,75,296,297,298,2889)) LIMIT 1139 所以问题是: 为什么实际查询中没有order子句? 为什么@ relevant_customers_for_total_spent.count大于relevant_customers_count_for_total_spent。 它应该等于或小于。 * 更新-1 * 我得到了第二个问题: @relevant_customers_for_total_spent.length 是计算元素数量的正确方法。 更新 […]

如何在Rails中订购?

我正在开发一个小型博客引擎。 有以下表格:博客和消息。 Blog有一个外键:last_message_id,所以我通过调用blog.last_message访问博客中的最​​后一条消息 我有以下代码使它工作: class Blog “Message” end 我需要通过最后的消息来订购博客。 但是当我打电话时 blogs.order(“last_message.created_at DESC”) 它不起作用。 我收到以下错误: PGError: ERROR: missing FROM-clause entry for table “last_message” ORDER BY last_messa… 我怎样才能使它工作? UPDATE 这是解决方案: blogs.joins(:last_message).order(“messages.created_at DESC”).

Rails Active Admin如何使用2列config.sort_order(关联中的1列)

在Active Admin中想知道如何设置带有2列的config.sort_order,其中第一列来自同一模型,第二列来自关联模型? ActiveAdmin.register Race do menu parent: :races, :label => proc{ I18n.t(‘activerecord.models.races’) } belongs_to :meeting, :optional => true #need to order by “meetings.date desc races.time desc” config.sort_order = “?” controller do def scoped_collection end_of_association_chain.includes(:meeting) end end end

postgresql,奇怪的OFFSET / LIMIT行为(记录顺序)

所以基本上我有这个范围(sql): scope.to_sql => “SELECT \”offers\”.* FROM \”offers\” INNER JOIN \”cities_offers\” ON \”offers\”.\”id\” = \”cities_offers\”.\”offer_id\” WHERE \”cities_offers\”.\”city_id\” = 2 AND \”offers\”.\”category_id\” IN (2) AND (offers.category_id is NOT NULL) ORDER BY offers.discount desc LIMIT 25 OFFSET 0″ 不知何故,上述查询的记录顺序不同,而且没有LIMIT和OFFSET的记录顺序不同: scope[6] => # #<Offer id: 8729 … 8629和8729记录都具有相同的discount值(我订购的属性)。 如果可以在这些情况下保持相同的记录顺序,请您提供建议吗?

通过混合大写和小写来思考狮身人面像

我有一个使用thinking_sphinx进行搜索的rails应用程序。 我的问题是返回的结果首先是大写字母,小写字母是在底部。 我想混合它们,以便’A’和’a’都在’B’之前。 这是我正在使用的方法: Company.search(query, :star => true, :page => params[:page], :per_page => 20, :order => :name, :sort_mode => :asc)

基本Rails 3问题:如何对产品进行排序?

我有以下型号: Product: name, shop_id (foreign key), brand_id (foreign key), price Shop: name Brand: name 协会是: Product: belongs_to :shop belongs_to :brand Shop: has_many :products has_many :brands, :through => :products Brand: has_many :products has_many :shops, :through => :products 在ProductsController#list我想获得按商店名称排序的所有产品的列表,然后按品牌名称排序。 我试着做: @products = Product.order(“products.shop.name ASC, products.brand.name ASC”) 但它不起作用(我猜因为products.shop.name在数据库级别不存在)。 这样做的正确方法是什么?

Rails按特定顺序按多个值激活查询顺序?

我有一张桌子 Roles(id int,,name vachar(50),role enum(CAD,CA,CM,CV )) 我想要按特定顺序按特定值排序的选择数据。 我的活动模型查询:role.order(’role asc’)然后是结果: 1 name1 CAD 2 name2 CA 3 name2 CM 但我希望结果如下: 1 name1 CAD 2 name2 CM 3 name2 CA 谁能帮我? 提前致谢