PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Kết hợp mệnh đề CHỌN tùy chỉnh trong truy vấn ActiveRecord

Chà, điều này thật đơn giản. Sử dụng .first là vấn đề. Tôi cho rằng điều này là do không có bản ghi mô hình nào được trả về bởi truy vấn. Nếu tôi giải quyết trực tiếp chỉ số 0 của kết quả, tôi sẽ nhận được tất cả điểm số của mình.

vì vậy mã này hoạt động:

 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. Django:IntegrityError trong Many To Many add ()

  2. TẠO CƠ SỞ DỮ LIỆU bên trong giao dịch

  3. Đồng bộ hóa 2 cơ sở dữ liệu, một cơ sở dữ liệu không thể cam kết

  4. Knex kết nối với Heroku Postgres bị lỗi?

  5. Trả lại nhiều giá trị SERIAL từ chèn hàng loạt Posgtres