Oracle
 sql >> база данни >  >> RDS >> Oracle

Как мога да използвам GROUP_CONCAT в Rails?

Доколкото знам, няма group_concat еквивалент в Rails, но можете да използвате includes за да направите това:

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

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

Това ще произведе само 2 заявки - знам, не е толкова добро като една, но мисля, че това е най-доброто, което Rails може да направи без "group_concat". Другият начин ще бъде нещо подобно:

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

Но ако направите това, трябва да промените според доставчика на вашата база данни.

  • MySQL :group_concat(страни.име)
  • PostgreSQL :string_agg(countries.name, ',')
  • Oracle :listagg(countries.name, ',')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изисквания за възстановяване преди архивиране

  2. невалиден път, докато се опитвате да запишете файла в pl sql

  3. конвейерна функция с параметър на курсора oracle

  4. Грешка при използване на oracle.dataaccess.dll

  5. Как да извлека генерираното от системата име на ограничение за проверка на колоната на таблицата в Oracle