Если вам необходимо повторно использовать этот расчет, вы можете выбрать его и дать ему псевдоним для SQL:
items = items.select('items.*, COUNT(items.*) AS count, (count * items.price) AS total').where('total >= 100')
И затем непосредственно использовать общую переменную:
items.first.total # => Should return the count*price
items.first.count # => Should return the count
items.first.id # => You can call all the other attributes of an Item
Вы можете также сделать сферу его:
class Item < ActiveRecord::Base
scope :total_more_than, lambda do |total|
self.select('items.*, COUNT(items.*) AS count, (count * items.price) AS total').where('total >= ?', total || 100) # if not total given, will use 100
end
И использовать его как это:
items.total_more_than(100)
Спасибо за ответ, но мне нужен список элементов, где отсчет * цена> = 100 =) не является подсчет –
Вы пробовали первый запрос из моего поста ? – MrYoshiji
SQLite3 :: SQLException: рядом с "*": синтаксическая ошибка: –