Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana saya bisa menggunakan GROUP_CONCAT di Rails?

Setahu saya, tidak ada group_concat setara di Rails, tetapi Anda dapat menggunakan includes untuk melakukan itu:

continents = Continents
  .joins(:countries, :event_locations)
  .includes(:countries)
  .group("continents.code")

continents.each do |continent| 
  continent.countries.join(",")
end

Ini hanya akan menghasilkan 2 kueri - saya tahu, tidak begitu bagus, tapi saya pikir itu yang terbaik daripada yang bisa dilakukan Rails tanpa "group_concat". Cara lain akan menjadi seperti itu:

Country
  .select("countries.id, GROUP_CONCAT(countries.name) as grouped_name")
  .joins(:continents, :event_locations)
  .group("continents.code")

Tetapi jika Anda melakukannya, Anda perlu mengubahnya sesuai dengan vendor database Anda.

  • MySQL :group_concat(nama negara)
  • PostgreSQL :string_agg(nama negara, ',')
  • Oracle :listagg(nama negara, ',')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menangani detik kabisat di Oracle

  2. SQL - Cara memilih baris yang memiliki kolom dengan nilai maksimal di Oracle

  3. Temukan entri duplikat di kolom

  4. Perbarui Kueri - Oracle

  5. Oracle:mengapa tidak menggunakan eksekusi paralel?