sql >> Databáze >  >> RDS >> PostgreSQL

Začlenění vlastní klauzule SELECT do dotazu ActiveRecord

No, tohle bylo jednoduché. Pomocí .first byl problém. Předpokládám, že je to proto, že dotazem nejsou vráceny žádné záznamy modelu. Pokud oslovím přímo index 0 výsledku, dostanu všechna svá skóre.

takže tento kód funguje:

 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. SQL Server 2008 Generuje řadu datumů a časů

  2. MySQL – Vyhledávání ve vlastním sloupci

  3. TRIGGER MySQL/MariaDB

  4. Jak mohu zkontrolovat typ motoru MySQL pro konkrétní tabulku?