PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

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. चींटी के साथ JDBC कॉपी

  2. दो तिथियों के बीच सप्ताह

  3. PostgreSQL में रिकॉर्ड को सही क्रम में कैसे लौटाएं

  4. ST_HexagonGrid geom वेक्टर सभी बिंदुओं को खोजने के लिए

  5. पोस्टग्रेज फ़ंक्शन