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

Групиране по определена колона в PostgreSQL

Ще трябва да определите как за групиране на стойности, които споделят един и същ category_id . Да ги свържа? Изчислете сума?

За да създадете списъци със стойности, разделени със запетая, вашето изявление може да изглежда така:

SELECT category_id
      ,string_agg(col1, ', ') AS col1_list
      ,string_agg(col2, ', ') AS col2_list
FROM   items
GROUP  BY category_id

Имате нужда от Postgres 9.0 или по-нова версия за string_agg(col1, ', ') .В по-старите версии можете да замените с array_to_string(array_agg(col1), ', ') . Още агрегатни функции тук .

Агрегирането на стойности в PostgreSQL е очевидно по-добрият подход за разлика от агрегирането на стойности в клиента. Postgres е много бърз при това и намалява (мрежовия) трафик.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проследяване на PostgreSQL с перф

  2. PG::ForeignKeyViolation:ГРЕШКА:актуализиране или изтриване на таблица xxx нарушава ограничението за външен ключ

  3. Инструкции IF-THEN-ELSE в postgresql

  4. как да използвате jsonb в rails

  5. Стойност NULL на функцията Postgres за ред, който препраща към НОВО