sql >> データベース >  >> RDS >> PostgreSQL

ActiveRecordクエリにカスタムSELECT句を組み込む

    まあ、これは簡単でした。 .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. MySQL-グループからの最大値をフィルタリングして表示する方法は?

    2. MySQL全文検索が一致しません

    3. SQL Server(T-SQL)で10進数を16進数に変換する3つの方法

    4. 「pipinstallMySQL-python」は「IndexError」で失敗します