PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Memasukkan klausa SELECT Kustom dalam kueri ActiveRecord

Yah, ini sederhana. Menggunakan .first adalah masalahnya. Saya kira ini karena tidak ada catatan model yang dikembalikan oleh kueri. Jika saya menangani indeks 0 dari hasil secara langsung, saya mendapatkan semua skor saya.

jadi kode ini berfungsi:

 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. Apa mitra JDBC dari perintah \connect Postgres?

  2. Mengapa hasil penghitungan berbeda pada pembacaan berurutan?

  3. Fungsi agregat di beberapa kolom di postgres

  4. Permintaan Postgres yang sangat lambat menggunakan WHERE pada banyak baris yang berdekatan

  5. Kesalahan format tanggal postgresql