PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Включване на персонализирана клауза SELECT в заявка за ActiveRecord

Е, това беше просто. Използване на .first беше проблемът. Предполагам, че това е така, защото няма записи на модели, върнати от заявката. Ако се обърна директно към индекса 0 на резултата, получавам всичките си резултати.

така че този код работи:

 query = 
      Assessment.rating_attributes.collect{|attribute|
        1.upto(5).collect do |i|
        %Q{sum(CASE WHEN #{attribute.to_s} = #{i} then 1 else 0 end) as #{attribute}_score_#{i}}
      end
    }.join(', ')

Assessment.where(selection_attribute: 1038).select(query)[0]
=> #<Assessment id: nil>

Assessment.where(selection_attribute: 1038).select(query)[0].first_attribute_score_1
=> 3



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql индекс на xpath израз не дава ускорение

  2. Как бързо да разместите 2d масив в 1d масив в PostgreSQL?

  3. Как мога да задам отложено ограничение на таблица, първоначално отложено в django модел?

  4. обработка на релси + postgres и часови зони

  5. PSQLException:Името на колоната clazz_ не беше намерено в този ResultSet